diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | openbsd-compat/bsd-arc4random.c | 2 |
2 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,8 @@ | |||
1 | 20080604 | ||
2 | - (djm) [openbsd-compat/bsd-arc4random.c] Fix math bug that caused bias | ||
3 | in arc4random_uniform with upper_bound in (2^30,2*31). Note that | ||
4 | OpenSSH did not make requests with upper bounds in this range. | ||
5 | |||
1 | 20080519 | 6 | 20080519 |
2 | - (djm) [configure.ac mux.c sftp.c openbsd-compat/Makefile.in] | 7 | - (djm) [configure.ac mux.c sftp.c openbsd-compat/Makefile.in] |
3 | [openbsd-compat/fmt_scaled.c openbsd-compat/openbsd-compat.h] | 8 | [openbsd-compat/fmt_scaled.c openbsd-compat/openbsd-compat.h] |
@@ -4023,4 +4028,4 @@ | |||
4023 | OpenServer 6 and add osr5bigcrypt support so when someone migrates | 4028 | OpenServer 6 and add osr5bigcrypt support so when someone migrates |
4024 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ | 4029 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ |
4025 | 4030 | ||
4026 | $Id: ChangeLog,v 1.4935 2008/05/19 22:57:06 djm Exp $ | 4031 | $Id: ChangeLog,v 1.4936 2008/06/04 00:54:00 djm Exp $ |
diff --git a/openbsd-compat/bsd-arc4random.c b/openbsd-compat/bsd-arc4random.c index 92e7e7b58..9d4c8690e 100644 --- a/openbsd-compat/bsd-arc4random.c +++ b/openbsd-compat/bsd-arc4random.c | |||
@@ -129,7 +129,7 @@ arc4random_uniform(u_int32_t upper_bound) | |||
129 | min = 1 + ~upper_bound; /* 2**32 - upper_bound */ | 129 | min = 1 + ~upper_bound; /* 2**32 - upper_bound */ |
130 | else { | 130 | else { |
131 | /* (2**32 - (x * 2)) % x == 2**32 % x when x <= 2**31 */ | 131 | /* (2**32 - (x * 2)) % x == 2**32 % x when x <= 2**31 */ |
132 | min = ((0xffffffff - (upper_bound << 2)) + 1) % upper_bound; | 132 | min = ((0xffffffff - (upper_bound * 2)) + 1) % upper_bound; |
133 | } | 133 | } |
134 | #endif | 134 | #endif |
135 | 135 | ||