summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2018-09-04 19:41:59 -0400
committerNick Mathewson <nickm@torproject.org>2018-09-04 19:45:28 -0400
commitd644c93ae9373f99d95870c7b752b790f8714201 (patch)
tree542b703b6405b704ddbf6354f76d97a05320903a
parentc50537fd9462af45f0a53aa4f0d5ca03a08fc41e (diff)
downloadtor-d644c93ae9373f99d95870c7b752b790f8714201.tar.gz
tor-d644c93ae9373f99d95870c7b752b790f8714201.zip
Resolve openssl-only memory leaks
-rw-r--r--src/lib/tls/tortls_openssl.c2
-rw-r--r--src/lib/tls/x509.c3
-rw-r--r--src/test/test_tortls_openssl.c2
3 files changed, 3 insertions, 4 deletions
diff --git a/src/lib/tls/tortls_openssl.c b/src/lib/tls/tortls_openssl.c
index 370e7e4367..9371c9393f 100644
--- a/src/lib/tls/tortls_openssl.c
+++ b/src/lib/tls/tortls_openssl.c
@@ -609,7 +609,7 @@ tor_tls_context_new(crypto_pk_t *identity, unsigned int key_lifetime,
if (result->my_id_cert) {
X509_STORE *s = SSL_CTX_get_cert_store(result->ctx);
tor_assert(s);
- X509_STORE_add_cert(s, X509_dup(result->my_id_cert->cert));
+ X509_STORE_add_cert(s, result->my_id_cert->cert);
}
}
SSL_CTX_set_session_cache_mode(result->ctx, SSL_SESS_CACHE_OFF);
diff --git a/src/lib/tls/x509.c b/src/lib/tls/x509.c
index 442cdf2c74..0d62ee41af 100644
--- a/src/lib/tls/x509.c
+++ b/src/lib/tls/x509.c
@@ -128,9 +128,8 @@ tor_x509_cert_new,(tor_x509_cert_impl_t *x509_cert))
return cert;
err:
- tor_free(cert);
log_err(LD_CRYPTO, "Couldn't wrap encoded X509 certificate.");
- tor_x509_cert_impl_free(x509_cert);
+ tor_x509_cert_free(cert);
return NULL;
}
diff --git a/src/test/test_tortls_openssl.c b/src/test/test_tortls_openssl.c
index 3abf412655..2e71de43ae 100644
--- a/src/test/test_tortls_openssl.c
+++ b/src/test/test_tortls_openssl.c
@@ -600,7 +600,7 @@ test_tortls_get_my_client_auth_key(void *ignored)
tt_assert(ret == expected);
done:
- tor_free(expected);
+ crypto_pk_free(expected);
tor_free(ctx);
}