[newlib-cygwin] srandom: Replace accessing /dev/random by equivalent getentropy call

Corinna Vinschen corinna@sourceware.org
Sun Mar 20 21:29:00 GMT 2016


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

commit 2519f0ef0c24e4a0fec98b58e6f3481d5dd57acd
Author: Corinna Vinschen <corinna@vinschen.de>
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 <corinna@vinschen.de>

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;



More information about the Cygwin-cvs mailing list