diff options
Diffstat (limited to 'libguile/bytevectors.c')
-rw-r--r-- | libguile/bytevectors.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c index 4f18be6ca..41d5b6c85 100644 --- a/libguile/bytevectors.c +++ b/libguile/bytevectors.c @@ -554,9 +554,14 @@ SCM_DEFINE (scm_bytevector_fill_x, "bytevector-fill!", 2, 0, 0, { size_t c_len, i; scm_t_uint8 *c_bv, c_fill; + int value; SCM_VALIDATE_BYTEVECTOR (1, bv); - c_fill = scm_to_int8 (fill); + + value = scm_to_int (fill); + if (SCM_UNLIKELY ((value < -128) || (value > 255))) + scm_out_of_range (FUNC_NAME, fill); + c_fill = (scm_t_uint8) value; c_len = SCM_BYTEVECTOR_LENGTH (bv); c_bv = (scm_t_uint8 *) SCM_BYTEVECTOR_CONTENTS (bv); |