https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=2519f0ef0c24e4a0fec98b58e6f3481d5dd57acd

commit 2519f0ef0c24e4a0fec98b58e6f3481d5dd57acd
Author: Corinna Vinschen <[email protected]>
Date:   Sun Mar 20 22:29:03 2016 +0100

    srandom: Replace accessing /dev/random by equivalent getentropy call
    
    /dev/random calls getentropy.  So there's no good reason to go out of
    our way to open /dev/random just to call getentropy anyway.
    
        * random.cc (srandomdev): Drop opening /dev/random in favor of
        calling getentropy.
    
    Signed-off-by: Corinna Vinschen <[email protected]>

Diff:
---
 winsup/cygwin/random.cc | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/winsup/cygwin/random.cc b/winsup/cygwin/random.cc
index fe1ac08..8cccade 100644
--- a/winsup/cygwin/random.cc
+++ b/winsup/cygwin/random.cc
@@ -299,7 +299,6 @@ dummy (unsigned volatile long *x)
 void
 srandomdev()
 {
-       int fd, done;
        size_t len;
 
        if (rand_type == TYPE_0)
@@ -307,15 +306,7 @@ srandomdev()
        else
                len = rand_deg * sizeof state[0];
 
-       done = 0;
-       fd = open("/dev/random", O_RDONLY, 0);
-       if (fd >= 0) {
-               if (read(fd, (void *) state, len) == (ssize_t) len)
-                       done = 1;
-               close(fd);
-       }
-
-       if (!done) {
+       if (getentropy ((void *) state, len)) {
                struct timeval tv;
                unsigned long junk;

Reply via email to