~ chicken-core (chicken-5) cd2a1a265f6075725701cfbd4a07d8411b1aa151
commit cd2a1a265f6075725701cfbd4a07d8411b1aa151
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Sat Nov 4 13:30:23 2017 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sat Nov 4 13:30:23 2017 +0100
correctly set last digit of random bignum
diff --git a/runtime.c b/runtime.c
index af5d32f2..3ded7f45 100644
--- a/runtime.c
+++ b/runtime.c
@@ -12672,7 +12672,7 @@ C_s_a_u_i_random_int(C_word **ptr, C_word n, C_word rn)
len -= sizeof(C_uword);
}
- *end = random_word() >> len; /* XXX is this right? uniform? */
+ *p = random_word() & ((1 << (len % C_BIGNUM_DIGIT_LENGTH)) - 1);
return C_bignum_simplify(result);
}
Trap