diff options
author | jsing <> | 2018-06-03 15:31:30 +0000 |
---|---|---|
committer | jsing <> | 2018-06-03 15:31:30 +0000 |
commit | 1811b2ca6472f39211dd2559ff4abbd95fd0f0f2 (patch) | |
tree | ea8e20dd4f10a9bc59142349da44cf935241b4be | |
parent | efd01a1e780bf24e47262357a24ff7a1dc9f8d6b (diff) | |
download | openbsd-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.c | 10 |
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 | } |