]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
fix two trivial potential onionkey leaks. neither of these
authorRoger Dingledine <arma@torproject.org>
Sat, 1 Dec 2007 04:40:12 +0000 (04:40 +0000)
committerRoger Dingledine <arma@torproject.org>
Sat, 1 Dec 2007 04:40:12 +0000 (04:40 +0000)
should happen in practice. but now they really won't.

svn:r12620

src/or/router.c

index c1e8b0c92c2a811285d2816e2cf2c8f646f71590..2cf762f650848580dc1181789a870cf10dc27b70 100644 (file)
@@ -189,6 +189,8 @@ rotate_onion_key(void)
   goto done;
  error:
   log_warn(LD_GENERAL, "Couldn't rotate onion key.");
+  if (prkey)
+    crypto_free_pk_env(prkey);
  done:
   tor_free(fname);
   tor_free(fname_prev);
@@ -469,7 +471,7 @@ init_keys(void)
   }
 
   keydir = get_datadir_fname2("keys", "secret_onion_key.old");
-  if (file_status(keydir) == FN_FILE) {
+  if (!lastonionkey && file_status(keydir) == FN_FILE) {
     prkey = init_key_from_file(keydir, 1, LOG_ERR);
     if (prkey)
       lastonionkey = prkey;