diff options
author | logan <> | 2014-06-10 18:00:59 +0000 |
---|---|---|
committer | logan <> | 2014-06-10 18:00:59 +0000 |
commit | 0bbbe9791a98bb8d5aeb999bf0ca439216d92e77 (patch) | |
tree | 4f2b7f1a54e95a16d0f25533d16c61246280a42e | |
parent | 46bdd6e88295daa9a571893aee696bbafb334e9f (diff) | |
download | openbsd-0bbbe9791a98bb8d5aeb999bf0ca439216d92e77.tar.gz openbsd-0bbbe9791a98bb8d5aeb999bf0ca439216d92e77.tar.bz2 openbsd-0bbbe9791a98bb8d5aeb999bf0ca439216d92e77.zip |
Check return value of EVP_MD_CTX_copy_ex() in ssl3_handshake_mac()
to avoid potential null pointer dereference.
Based on david ramos work.
OK from miod@ and jsing@
-rw-r--r-- | src/lib/libssl/src/ssl/s3_enc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/libssl/src/ssl/s3_enc.c b/src/lib/libssl/src/ssl/s3_enc.c index 8f88a4a88d..71a3155c60 100644 --- a/src/lib/libssl/src/ssl/s3_enc.c +++ b/src/lib/libssl/src/ssl/s3_enc.c | |||
@@ -668,7 +668,9 @@ ssl3_handshake_mac(SSL *s, int md_nid, const char *sender, int len, | |||
668 | } | 668 | } |
669 | EVP_MD_CTX_init(&ctx); | 669 | EVP_MD_CTX_init(&ctx); |
670 | EVP_MD_CTX_set_flags(&ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); | 670 | EVP_MD_CTX_set_flags(&ctx, EVP_MD_CTX_FLAG_NON_FIPS_ALLOW); |
671 | EVP_MD_CTX_copy_ex(&ctx, d); | 671 | |
672 | if (!EVP_MD_CTX_copy_ex(&ctx, d)) | ||
673 | return 0; | ||
672 | n = EVP_MD_CTX_size(&ctx); | 674 | n = EVP_MD_CTX_size(&ctx); |
673 | if (n < 0) | 675 | if (n < 0) |
674 | return 0; | 676 | return 0; |