summaryrefslogtreecommitdiff
path: root/src/lib/libssl/s3_srvr.c
diff options
context:
space:
mode:
authordoug <>2014-12-15 00:46:53 +0000
committerdoug <>2014-12-15 00:46:53 +0000
commit5ff3741c44f372895206f59414df34e2dcd5eaa0 (patch)
treea755a6603462bb1b649e3f343d73dd0e1c3b34c5 /src/lib/libssl/s3_srvr.c
parent02216b57a0ccb0dd187f3ea646c6ae40e827d3ae (diff)
downloadopenbsd-5ff3741c44f372895206f59414df34e2dcd5eaa0.tar.gz
openbsd-5ff3741c44f372895206f59414df34e2dcd5eaa0.tar.bz2
openbsd-5ff3741c44f372895206f59414df34e2dcd5eaa0.zip
Add error handling for EVP_DigestInit_ex().
A few EVP_DigestInit_ex() calls were left alone since reporting an error would change the public API. Changed internal ssl3_cbc_digest_record() to return a value due to the above change. It will also now set md_out_size=0 on failure. This is based on part of BoringSSL's commit to fix malloc crashes: https://boringssl.googlesource.com/boringssl/+/69a01608f33ab6fe2c3485d94aef1fe9eacf5364 ok miod@
Diffstat (limited to 'src/lib/libssl/s3_srvr.c')
-rw-r--r--src/lib/libssl/s3_srvr.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c
index 783b1df782..5e4a605c60 100644
--- a/src/lib/libssl/s3_srvr.c
+++ b/src/lib/libssl/s3_srvr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_srvr.c,v 1.94 2014/12/14 14:34:43 jsing Exp $ */ 1/* $OpenBSD: s3_srvr.c,v 1.95 2014/12/15 00:46:53 doug Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1612,9 +1612,10 @@ ssl3_send_server_key_exchange(SSL *s)
1612 q = md_buf; 1612 q = md_buf;
1613 j = 0; 1613 j = 0;
1614 for (num = 2; num > 0; num--) { 1614 for (num = 2; num > 0; num--) {
1615 EVP_DigestInit_ex(&md_ctx, 1615 if (!EVP_DigestInit_ex(&md_ctx,
1616 (num == 2) ? s->ctx->md5 : 1616 (num == 2) ? s->ctx->md5 :
1617 s->ctx->sha1, NULL); 1617 s->ctx->sha1, NULL))
1618 goto err;
1618 EVP_DigestUpdate(&md_ctx, 1619 EVP_DigestUpdate(&md_ctx,
1619 s->s3->client_random, 1620 s->s3->client_random,
1620 SSL3_RANDOM_SIZE); 1621 SSL3_RANDOM_SIZE);