diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | stdlib/rand_r.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 44f685b971..5baadb5f83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1999-10-27 Andreas Jaeger <aj@suse.de> + + * stdlib/rand_r.c (rand_r): Really use 31 bits, the result was + shifted a bit too much. + Reported by Eugen Dedu <dedu@ese-metz.fr>. + 1999-10-25 Ulrich Drepper <drepper@cygnus.com> * resolv/gethnamaddr.c: Account bytes needed for alignment in diff --git a/stdlib/rand_r.c b/stdlib/rand_r.c index 3e0b8b2bc0..00c619a830 100644 --- a/stdlib/rand_r.c +++ b/stdlib/rand_r.c @@ -1,5 +1,5 @@ /* Reentrant random function frm POSIX.1c. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -35,7 +35,7 @@ rand_r (unsigned int *seed) next *= 1103515245; next += 12345; - result <<= 11; + result <<= 10; result ^= (unsigned int) (next / 65536) % 1024; next *= 1103515245; |