diff options
author | eadler <eadler@FreeBSD.org> | 2012-10-09 14:25:14 +0000 |
---|---|---|
committer | eadler <eadler@FreeBSD.org> | 2012-10-09 14:25:14 +0000 |
commit | 6a02d06d1d81ffda0499310925ef854fd237f382 (patch) | |
tree | 93be2ae836bedc74ae0fc7764e801a5dde94a0b3 /lib/libc/stdlib/rand.c | |
parent | 3212891c92af5f2d7d3d162066a3fc5b39195996 (diff) | |
download | FreeBSD-src-6a02d06d1d81ffda0499310925ef854fd237f382.zip FreeBSD-src-6a02d06d1d81ffda0499310925ef854fd237f382.tar.gz |
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: secteam
MFC after: 3 days
Diffstat (limited to 'lib/libc/stdlib/rand.c')
-rw-r--r-- | lib/libc/stdlib/rand.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/libc/stdlib/rand.c b/lib/libc/stdlib/rand.c index 3835976..7041818 100644 --- a/lib/libc/stdlib/rand.c +++ b/lib/libc/stdlib/rand.c @@ -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); } } |