From: Nick Mathewson Date: Wed, 21 Oct 2015 18:19:43 +0000 (-0400) Subject: More memory leaks closed in test_tortls X-Git-Tag: tor-0.2.8.1-alpha~276 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=13ff8e31bacc249c3d899387cbdc7cecca0ad8a3;p=thirdparty%2Ftor.git More memory leaks closed in test_tortls --- diff --git a/src/test/test_tortls.c b/src/test/test_tortls.c index cbd91b4c0a..c1d1addde1 100644 --- a/src/test/test_tortls.c +++ b/src/test/test_tortls.c @@ -229,6 +229,7 @@ test_tortls_get_state_description(void *ignored) tor_tls_get_state_description(NULL, buf, 20); tt_str_op(buf, OP_EQ, "(No SSL object)"); + SSL_free(tls->ssl); tls->ssl = NULL; tor_tls_get_state_description(tls, buf, 20); tt_str_op(buf, OP_EQ, "(No SSL object)"); @@ -2485,6 +2486,7 @@ test_tortls_finish_handshake(void *ignored) X509 *c1 = read_cert_from(validCertString); X509 *c2 = read_cert_from(caCertString); + SESS_CERT_local *sess = NULL; ctx = SSL_CTX_new(method); @@ -2514,7 +2516,7 @@ test_tortls_finish_handshake(void *ignored) tls->isServer = 0; - SESS_CERT_local *sess = tor_malloc_zero(sizeof(SESS_CERT_local)); + sess = tor_malloc_zero(sizeof(SESS_CERT_local)); tls->ssl->session->sess_cert = (void *)sess; sess->cert_chain = sk_X509_new_null(); sk_X509_push(sess->cert_chain, c1); @@ -2541,10 +2543,16 @@ test_tortls_finish_handshake(void *ignored) tt_int_op(ret, OP_EQ, -9); done: - if (tls) - SSL_free(tls->ssl); + if (sess) + sk_X509_free(sess->cert_chain); + if (tls->ssl && tls->ssl->session) { + tor_free(tls->ssl->session->sess_cert); + } + SSL_free(tls->ssl); tor_free(tls); SSL_CTX_free(ctx); + tor_free(method); + X509_free(c1); } #endif