Fixed the return code for RAND_egd_bytes.
authorganesh <ganeshbhambarkar@gmail.com>
Thu, 10 Nov 2016 11:16:43 +0000 (16:46 +0530)
committerRichard Levitte <levitte@openssl.org>
Tue, 24 Jan 2017 13:40:45 +0000 (14:40 +0100)
According to the documentation, the return code should be -1 when
RAND_status does not return 1.

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 3ed93c863374125296954edcbc595599adbd07ea)

crypto/rand/rand_egd.c

index 5fb230fa95d7888a7b24fdcc9901f9156ba4b5c3..f77af415c016f47022d3534bd698e113b0440f00 100644 (file)
@@ -228,10 +228,10 @@ int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
 
 int RAND_egd_bytes(const char *path, int bytes)
 {
-    int num, ret = 0;
+    int num, ret = -1;
 
     num = RAND_query_egd_bytes(path, NULL, bytes);
-    if (num < 1 || RAND_status() == 1)
+    if (RAND_status() == 1)
         ret = num;
  err:
     return (ret);