]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Fix a few more memory leaks; not in any released Tor
authorNick Mathewson <nickm@torproject.org>
Tue, 5 May 2015 15:08:05 +0000 (11:08 -0400)
committerNick Mathewson <nickm@torproject.org>
Tue, 5 May 2015 15:08:05 +0000 (11:08 -0400)
src/or/control.c
src/test/test_controller.c

index ebe385923af991fa20c57436ea8487e2cc4ba2dd..780dea58e09475b41ee56265f7a9c14fa4eec701 100644 (file)
@@ -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;
 
index 9039dc7677e688382717020526e7c811a92004dd..b40825bb5d0dc470fa5b53455f10a8e0caafe6a0 100644 (file)
@@ -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);