summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2018-06-03 15:31:30 +0000
committerjsing <>2018-06-03 15:31:30 +0000
commit1811b2ca6472f39211dd2559ff4abbd95fd0f0f2 (patch)
treeea8e20dd4f10a9bc59142349da44cf935241b4be
parentefd01a1e780bf24e47262357a24ff7a1dc9f8d6b (diff)
downloadopenbsd-1811b2ca6472f39211dd2559ff4abbd95fd0f0f2.tar.gz
openbsd-1811b2ca6472f39211dd2559ff4abbd95fd0f0f2.tar.bz2
openbsd-1811b2ca6472f39211dd2559ff4abbd95fd0f0f2.zip
Check the return value from DH_size() in ssl3_send_client_kex_dhe().
ok beck@ inoguchi@
-rw-r--r--src/lib/libssl/ssl_clnt.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/libssl/ssl_clnt.c b/src/lib/libssl/ssl_clnt.c
index e189c82fdd..a4d0d048bd 100644
--- a/src/lib/libssl/ssl_clnt.c
+++ b/src/lib/libssl/ssl_clnt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_clnt.c,v 1.25 2018/05/13 17:31:06 jsing Exp $ */ 1/* $OpenBSD: ssl_clnt.c,v 1.26 2018/06/03 15:31:30 jsing 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 *
@@ -2049,13 +2049,15 @@ ssl3_send_client_kex_dhe(SSL *s, SESS_CERT *sess_cert, CBB *cbb)
2049 SSLerror(s, ERR_R_DH_LIB); 2049 SSLerror(s, ERR_R_DH_LIB);
2050 goto err; 2050 goto err;
2051 } 2051 }
2052 key_size = DH_size(dh_clnt); 2052 if ((key_size = DH_size(dh_clnt)) <= 0) {
2053 SSLerror(s, ERR_R_DH_LIB);
2054 goto err;
2055 }
2053 if ((key = malloc(key_size)) == NULL) { 2056 if ((key = malloc(key_size)) == NULL) {
2054 SSLerror(s, ERR_R_MALLOC_FAILURE); 2057 SSLerror(s, ERR_R_MALLOC_FAILURE);
2055 goto err; 2058 goto err;
2056 } 2059 }
2057 key_len = DH_compute_key(key, dh_srvr->pub_key, dh_clnt); 2060 if ((key_len = DH_compute_key(key, dh_srvr->pub_key, dh_clnt)) <= 0) {
2058 if (key_len <= 0) {
2059 SSLerror(s, ERR_R_DH_LIB); 2061 SSLerror(s, ERR_R_DH_LIB);
2060 goto err; 2062 goto err;
2061 } 2063 }