diff --git a/crypto/rand/md_rand.c b/crypto/rand/md_rand.c index 79e3484b4..da4258c47 100644 --- a/crypto/rand/md_rand.c +++ b/crypto/rand/md_rand.c @@ -559,14 +559,17 @@ static int ssleay_rand_pseudo_bytes(unsigned char *buf, int num) static int ssleay_rand_status(void) { + int ret; + CRYPTO_w_lock(CRYPTO_LOCK_RAND); if (!initialized) ssleay_rand_initialize(); + ret = entropy >= ENTROPY_NEEDED; CRYPTO_w_unlock(CRYPTO_LOCK_RAND); - return (entropy >= ENTROPY_NEEDED); + return ret; } #ifdef WINDOWS