diff options
Diffstat (limited to 'src/lib/libssl/ssl_sess.c')
-rw-r--r-- | src/lib/libssl/ssl_sess.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c index f6e2642aeb..0970633a86 100644 --- a/src/lib/libssl/ssl_sess.c +++ b/src/lib/libssl/ssl_sess.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_sess.c,v 1.53 2016/11/02 11:21:05 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_sess.c,v 1.54 2017/01/22 03:50:45 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 | * |
@@ -199,10 +199,14 @@ SSL_SESSION_new(void) | |||
199 | { | 199 | { |
200 | SSL_SESSION *ss; | 200 | SSL_SESSION *ss; |
201 | 201 | ||
202 | ss = calloc(1, sizeof(SSL_SESSION)); | 202 | if ((ss = calloc(1, sizeof(*ss))) == NULL) { |
203 | if (ss == NULL) { | ||
204 | SSLerr(SSL_F_SSL_SESSION_NEW, ERR_R_MALLOC_FAILURE); | 203 | SSLerr(SSL_F_SSL_SESSION_NEW, ERR_R_MALLOC_FAILURE); |
205 | return (0); | 204 | return (NULL); |
205 | } | ||
206 | if ((ss->internal = calloc(1, sizeof(*ss->internal))) == NULL) { | ||
207 | free(ss); | ||
208 | SSLerr(SSL_F_SSL_SESSION_NEW, ERR_R_MALLOC_FAILURE); | ||
209 | return (NULL); | ||
206 | } | 210 | } |
207 | 211 | ||
208 | ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */ | 212 | ss->verify_result = 1; /* avoid 0 (= X509_V_OK) just in case */ |
@@ -706,6 +710,10 @@ SSL_SESSION_free(SSL_SESSION *ss) | |||
706 | free(ss->tlsext_ecpointformatlist); | 710 | free(ss->tlsext_ecpointformatlist); |
707 | ss->tlsext_ellipticcurvelist_length = 0; | 711 | ss->tlsext_ellipticcurvelist_length = 0; |
708 | free(ss->tlsext_ellipticcurvelist); | 712 | free(ss->tlsext_ellipticcurvelist); |
713 | |||
714 | explicit_bzero(ss->internal, sizeof(*ss->internal)); | ||
715 | free(ss->internal); | ||
716 | |||
709 | explicit_bzero(ss, sizeof(*ss)); | 717 | explicit_bzero(ss, sizeof(*ss)); |
710 | free(ss); | 718 | free(ss); |
711 | } | 719 | } |