Browse Source

Fix a memory leak on failure to create keys directory.

Fixes bug 30148, which is also CID 1437429 and CID 1437454. Bugfix
on 0.3.3.1-alpha, when separate key directories became a thing.
Nick Mathewson 5 years ago
parent
commit
85ff6f9114
2 changed files with 5 additions and 2 deletions
  1. 4 0
      changes/bug30148
  2. 1 2
      src/or/routerkeys.c

+ 4 - 0
changes/bug30148

@@ -0,0 +1,4 @@
+  o Minor bugfixes (memory leak):
+    - Avoid a minor memory leak that could occur on relays when
+      creating a keys directory failed. Fixes bug 30148; bugfix on
+      0.3.3.1-alpha.

+ 1 - 2
src/or/routerkeys.c

@@ -816,7 +816,7 @@ load_ed_keys(const or_options_t *options, time_t now)
 
     /* Check/Create the key directory */
     if (create_keys_directory(options) < 0)
-      return -1;
+      goto err;
 
     char *fname;
     if (options->master_key_fname) {
@@ -1403,4 +1403,3 @@ routerkeys_free_all(void)
   rsa_ed_crosscert = NULL; // redundant
   rsa_ed_crosscert_len = 0;
 }
-