[tor-commits] [tor/master] Fix a few more memory leaks; not in any released Tor

nickm at torproject.org nickm at torproject.org
Tue May 5 15:08:11 UTC 2015


commit f61088ce2321be7c408b4298258a268a0a546e78
Author: Nick Mathewson <nickm at torproject.org>
Date:   Tue May 5 11:08:05 2015 -0400

    Fix a few more memory leaks; not in any released Tor
---
 src/or/control.c           |    7 ++++++-
 src/test/test_controller.c |    2 ++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/or/control.c b/src/or/control.c
index ebe3859..780dea5 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 9039dc7..b40825b 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);



More information about the tor-commits mailing list