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;
        }
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "[email protected]"

Reply via email to