summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2015-03-12 14:37:26 +0000
committerMatt Caswell <matt@openssl.org>2015-03-17 13:49:32 +0000
commitf08731cd82566d14275b7749ca553bdd7f6267f3 (patch)
tree2949dee4de41c6b5618a1b20381ad5a59c24d59b
parentf4b8760056ebc6d22666652fc34dc9ad8577856c (diff)
downloadopenssl-new-f08731cd82566d14275b7749ca553bdd7f6267f3.tar.gz
Add sanity check to PRF
The function tls1_PRF counts the number of digests in use and partitions security evenly between them. There always needs to be at least one digest in use, otherwise this is an internal error. Add a sanity check for this. Reviewed-by: Richard Levitte <levitte@openssl.org> (cherry picked from commit 668f6f08c62177ab5893fc26ebb67053aafdffc8)
-rw-r--r--ssl/t1_enc.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ssl/t1_enc.c b/ssl/t1_enc.c
index fa1c002bf3..4e2845fa6e 100644
--- a/ssl/t1_enc.c
+++ b/ssl/t1_enc.c
@@ -261,6 +261,11 @@ static int tls1_PRF(long digest_mask,
if ((m << TLS1_PRF_DGST_SHIFT) & digest_mask)
count++;
}
+ if(!count) {
+ /* Should never happen */
+ SSLerr(SSL_F_TLS1_PRF, ERR_R_INTERNAL_ERROR);
+ goto err;
+ }
len = slen / count;
if (count == 1)
slen = 0;