aboutsummaryrefslogtreecommitdiff
path: root/crypto/rand/md_rand.c
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2000-03-30 06:11:54 +0000
committerBodo Möller <bodo@openssl.org>2000-03-30 06:11:54 +0000
commitb841e0acd856b3ab72b34f89d282b402d10b967f (patch)
tree11089f934422bdc88124763e1c4f28884bbaa345 /crypto/rand/md_rand.c
parent35af460fef9b8bca5b358661bbfe12c60cdc7bfa (diff)
downloadopenssl-b841e0acd856b3ab72b34f89d282b402d10b967f.zip
openssl-b841e0acd856b3ab72b34f89d282b402d10b967f.tar.gz
openssl-b841e0acd856b3ab72b34f89d282b402d10b967f.tar.bz2
'entropy >= ENTROPY_NEEDED' should be evaluated while the
variables are locked.
Diffstat (limited to 'crypto/rand/md_rand.c')
-rw-r--r--crypto/rand/md_rand.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/crypto/rand/md_rand.c b/crypto/rand/md_rand.c
index 79e3484..da4258c 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