From 389110ae89cb9cb66ece2cbe6c5f06be4344e3f5 Mon Sep 17 00:00:00 2001 From: Loganaden Velvindron Date: Thu, 26 Jun 2014 17:46:27 -0700 Subject: [PATCH] DTLS: fix memory leak when allocation fails. Change-Id: Ib789362bc0a8aa5460cfce61fef141cb22747b33 --- ssl/d1_lib.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ssl/d1_lib.c b/ssl/d1_lib.c index fbfdca75..454236f2 100644 --- a/ssl/d1_lib.c +++ b/ssl/d1_lib.c @@ -126,7 +126,11 @@ int dtls1_new(SSL *s) DTLS1_STATE *d1; if (!ssl3_new(s)) return(0); - if ((d1=OPENSSL_malloc(sizeof *d1)) == NULL) return (0); + if ((d1=OPENSSL_malloc(sizeof *d1)) == NULL) + { + ssl3_free(s); + return (0); + } memset(d1,0, sizeof *d1); /* d1->handshake_epoch=0; */ @@ -151,6 +155,7 @@ int dtls1_new(SSL *s) if ( d1->sent_messages) pqueue_free(d1->sent_messages); if ( d1->buffered_app_data.q) pqueue_free(d1->buffered_app_data.q); OPENSSL_free(d1); + ssl3_free(s); return (0); }