diff --git a/crypto/rand/rand_egd.c b/crypto/rand/rand_egd.c index fb6bad70dc8a9cfd34dc808a08739f330fe49ca1..5fb230fa95d7888a7b24fdcc9901f9156ba4b5c3 100644 --- a/crypto/rand/rand_egd.c +++ b/crypto/rand/rand_egd.c @@ -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);