Fixed the return code of RAND_query_egd_bytes when connect fails.
authorganesh <ganeshbhambarkar@gmail.com>
Wed, 9 Nov 2016 15:14:22 +0000 (20:44 +0530)
committerRichard Levitte <levitte@openssl.org>
Tue, 24 Jan 2017 13:40:44 +0000 (14:40 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1886)
(cherry picked from commit 1381684daf8800487b48a70cd634f433b1d6366f)

crypto/rand/rand_egd.c

index fb6bad70dc8a9cfd34dc808a08739f330fe49ca1..5fb230fa95d7888a7b24fdcc9901f9156ba4b5c3 100644 (file)
@@ -133,6 +133,7 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
                 break;
 #  endif
             default:
+                ret = -1;
                 goto err;       /* failure */
             }
         }
@@ -230,9 +231,7 @@ int RAND_egd_bytes(const char *path, int bytes)
     int num, ret = 0;
 
     num = RAND_query_egd_bytes(path, NULL, bytes);
-    if (num < 1)
-        goto err;
-    if (RAND_status() == 1)
+    if (num < 1 || RAND_status() == 1)
         ret = num;
  err:
     return (ret);