Browse Source

fix two trivial potential onionkey leaks. neither of these
should happen in practice. but now they really won't.


svn:r12620

Roger Dingledine 16 years ago
parent
commit
6d49465b69
1 changed files with 3 additions and 1 deletions
  1. 3 1
      src/or/router.c

+ 3 - 1
src/or/router.c

@@ -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;