aboutsummaryrefslogtreecommitdiff
path: root/crypto/rand/md_rand.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2014-04-06 23:11:20 +0100
committerDr. Stephen Henson <steve@openssl.org>2014-04-07 19:44:45 +0100
commitf74fa33bcee6bc84f41442bdd256d838c2cb3c14 (patch)
tree3f9f5049e0715dd36fd3fa0369d1064d0236759a /crypto/rand/md_rand.c
parent731f431497f463f3a2a97236fe0187b11c44aead (diff)
downloadopenssl-f74fa33bcee6bc84f41442bdd256d838c2cb3c14.zip
openssl-f74fa33bcee6bc84f41442bdd256d838c2cb3c14.tar.gz
openssl-f74fa33bcee6bc84f41442bdd256d838c2cb3c14.tar.bz2
Return if ssleay_rand_add called with zero num.
Treat a zero length passed to ssleay_rand_add a no op: the existing logic zeroes the md value which is very bad. OpenSSL itself never does this internally and the actual call doesn't make sense as it would be passing zero bytes of entropy. Thanks to Marcus Meissner <meissner@suse.de> for reporting this bug. (cherry picked from commit 5be1ae28ef3c4bdec95b94f14e0e939157be550a)
Diffstat (limited to 'crypto/rand/md_rand.c')
-rw-r--r--crypto/rand/md_rand.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/crypto/rand/md_rand.c b/crypto/rand/md_rand.c
index 6cab308..67ac5ac 100644
--- a/crypto/rand/md_rand.c
+++ b/crypto/rand/md_rand.c
@@ -212,6 +212,9 @@ static int ssleay_rand_add(const void *buf, int num, double add)
int do_not_lock;
int rv = 0;
+ if (!num)
+ return;
+
/*
* (Based on the rand(3) manpage)
*