diff options
author | Nick Mathewson <nickm@torproject.org> | 2015-05-05 11:08:05 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2015-05-05 11:08:05 -0400 |
commit | f61088ce2321be7c408b4298258a268a0a546e78 (patch) | |
tree | 44ca43147a06222429fe3a5eadd1a81ace082e17 | |
parent | 72c4a4eb03d6d1be1de2701b4c2c2703bfbca699 (diff) | |
download | tor-f61088ce2321be7c408b4298258a268a0a546e78.tar.gz tor-f61088ce2321be7c408b4298258a268a0a546e78.zip |
Fix a few more memory leaks; not in any released Tor
-rw-r--r-- | src/or/control.c | 7 | ||||
-rw-r--r-- | src/test/test_controller.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/src/or/control.c b/src/or/control.c index ebe385923a..780dea58e0 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -3779,12 +3779,17 @@ add_onion_helper_keyarg(const char *arg, int discard_pk, memwipe(cp, 0, strlen(cp)); tor_free(cp); }); + smartlist_free(key_args); if (!ok) { crypto_pk_free(pk); pk = NULL; } - if (err_msg_out) *err_msg_out = err_msg; + if (err_msg_out) { + *err_msg_out = err_msg; + } else { + tor_free(err_msg); + } *key_new_alg_out = key_new_alg; *key_new_blob_out = key_new_blob; diff --git a/src/test/test_controller.c b/src/test/test_controller.c index 9039dc7677..b40825bb5d 100644 --- a/src/test/test_controller.c +++ b/src/test/test_controller.c @@ -72,6 +72,7 @@ test_add_onion_helper_keyarg(void *arg) /* Test loading a invalid key type. */ tor_free(arg_str); + crypto_pk_free(pk); pk = NULL; tor_asprintf(&arg_str, "RSA512:%s", encoded); pk = add_onion_helper_keyarg(arg_str, 0, &key_new_alg, &key_new_blob, &err_msg); @@ -82,6 +83,7 @@ test_add_onion_helper_keyarg(void *arg) /* Test loading a invalid key. */ tor_free(arg_str); + crypto_pk_free(pk); pk = NULL; tor_free(err_msg); encoded[strlen(encoded)/2] = '\0'; tor_asprintf(&arg_str, "RSA1024:%s", encoded); |