aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-03-14 14:17:33 -0400
committerNick Mathewson <nickm@torproject.org>2020-03-14 14:17:37 -0400
commit29c9675bdeb5a63564e9a76dcd7162bef884b240 (patch)
treefb1bb02779bf062b61004164e87a6a684863db2f
parentab2e66ccdc4406a195d77b202bae21c17c634cb5 (diff)
downloadtor-29c9675bdeb5a63564e9a76dcd7162bef884b240.tar.gz
tor-29c9675bdeb5a63564e9a76dcd7162bef884b240.zip
Fix memory leak in crypto_pk_asn1_decode_private.
(Deep, deep thanks to Taylor for reminding me to test this!)
-rw-r--r--src/lib/crypt_ops/crypto_rsa_openssl.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lib/crypt_ops/crypto_rsa_openssl.c b/src/lib/crypt_ops/crypto_rsa_openssl.c
index 39b7aaf0cf..0db25f3473 100644
--- a/src/lib/crypt_ops/crypto_rsa_openssl.c
+++ b/src/lib/crypt_ops/crypto_rsa_openssl.c
@@ -590,6 +590,7 @@ crypto_pk_asn1_decode_private(const char *str, size_t len, int max_bits)
if (max_bits >= 0 && rsa->n && BN_num_bits(rsa->n) > max_bits) {
#endif
log_info(LD_CRYPTO, "Private key longer than expected.");
+ RSA_free(rsa);
return NULL;
}
crypto_pk_t *result = crypto_new_pk_from_openssl_rsa_(rsa);