Browse Source

Fix two memory leaks found by Coverity (CIDs 417-418)

The first happens on an error case when a controller wants an
impossible directory object.  The second happens when we can't write
our fingerprint file.
Nick Mathewson 14 years ago
parent
commit
5c73da7faa
2 changed files with 2 additions and 0 deletions
  1. 1 0
      src/or/control.c
  2. 1 0
      src/or/router.c

+ 1 - 0
src/or/control.c

@@ -1536,6 +1536,7 @@ getinfo_helper_dir(control_connection_t *control_conn,
     if (res) {
       log_warn(LD_CONTROL, "getinfo '%s': %s", question, msg);
       smartlist_free(descs);
+      tor_free(url);
       return -1;
     }
     SMARTLIST_FOREACH(descs, signed_descriptor_t *, sd,

+ 1 - 0
src/or/router.c

@@ -588,6 +588,7 @@ init_keys(void)
     if (write_str_to_file(keydir, fingerprint_line, 0)) {
       log_err(LD_FS, "Error writing fingerprint line to file");
       tor_free(keydir);
+      tor_free(cp);
       return -1;
     }
   }