svn commit: r241476 - stable/9/lib/libc/stdlib
Eitan Adler
eadler at FreeBSD.org
Fri Oct 12 02:12:54 UTC 2012
Author: eadler
Date: Fri Oct 12 02:12:53 2012
New Revision: 241476
URL: http://svn.freebsd.org/changeset/base/241476
Log:
MFC r241373:
Remove undefined behavior from sranddev() and
srandomdev(). This doesn't actually work
with any modern C compiler:
In particular, both clang and modern gcc
verisons silently elide any xor operation
with 'junk'.
Approved by: cperciva (implicit)
Modified:
stable/9/lib/libc/stdlib/rand.c
stable/9/lib/libc/stdlib/random.c
Directory Properties:
stable/9/lib/libc/ (props changed)
Modified: stable/9/lib/libc/stdlib/rand.c
==============================================================================
--- stable/9/lib/libc/stdlib/rand.c Fri Oct 12 02:12:52 2012 (r241475)
+++ stable/9/lib/libc/stdlib/rand.c Fri Oct 12 02:12:53 2012 (r241476)
@@ -130,10 +130,9 @@ sranddev()
if (!done) {
struct timeval tv;
- unsigned long junk;
gettimeofday(&tv, NULL);
- srand((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec ^ junk);
+ srand((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec);
}
}
Modified: stable/9/lib/libc/stdlib/random.c
==============================================================================
--- stable/9/lib/libc/stdlib/random.c Fri Oct 12 02:12:52 2012 (r241475)
+++ stable/9/lib/libc/stdlib/random.c Fri Oct 12 02:12:53 2012 (r241476)
@@ -315,10 +315,9 @@ srandomdev()
if (!done) {
struct timeval tv;
- volatile unsigned long junk;
gettimeofday(&tv, NULL);
- srandom((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec ^ junk);
+ srandom((getpid() << 16) ^ tv.tv_sec ^ tv.tv_usec);
return;
}
More information about the svn-src-stable-9
mailing list