Browse Source

Another related leak

svn:r1028
Nick Mathewson 21 years ago
parent
commit
a81435c64e
1 changed files with 7 additions and 4 deletions
  1. 7 4
      src/or/routerlist.c

+ 7 - 4
src/or/routerlist.c

@@ -869,18 +869,21 @@ router_add_exit_policy_from_string(routerinfo_t *router, const char *s)
   tmp[len+1]='\0';
   tmp[len+1]='\0';
   if (router_get_next_token(&cp, &tok)) {
   if (router_get_next_token(&cp, &tok)) {
     log_fn(LOG_WARN, "Error reading exit policy: %s", tok.val.error);
     log_fn(LOG_WARN, "Error reading exit policy: %s", tok.val.error);
-    free(tmp);
-    return -1;
+    goto err;
   }
   }
   if (tok.tp != K_ACCEPT && tok.tp != K_REJECT) {
   if (tok.tp != K_ACCEPT && tok.tp != K_REJECT) {
     log_fn(LOG_WARN, "Expected 'accept' or 'reject'.");
     log_fn(LOG_WARN, "Expected 'accept' or 'reject'.");
-    free(tmp);
-    return -1;
+    goto err;
   }
   }
 
 
   /* Now that we've gotten an exit policy, add it to the router. */
   /* Now that we've gotten an exit policy, add it to the router. */
   r = router_add_exit_policy(router, &tok);
   r = router_add_exit_policy(router, &tok);
+  goto done;
+ err:
+  r = -1;
+ done:
   free(tmp);
   free(tmp);
+  router_release_token(&tok);
   return r;
   return r;
 }
 }