瀏覽代碼

router_add_to_routerlist() really needs to free not-added routers.

svn:r5328
Nick Mathewson 20 年之前
父節點
當前提交
ed32d85a04
共有 1 個文件被更改,包括 5 次插入1 次删除
  1. 5 1
      src/or/routerlist.c

+ 5 - 1
src/or/routerlist.c

@@ -1386,18 +1386,22 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg,
     info(LD_DIR, "Dropping descriptor that we already have for router '%s'",
          router->nickname);
     *msg = "Router descriptor was not new.";
+    routerinfo_free(router);
     return -1;
   }
 
   if (authdir) {
-    if (authdir_wants_to_reject_router(router, msg))
+    if (authdir_wants_to_reject_router(router, msg)) {
+      routerinfo_free(router);
       return -2;
+    }
     authdir_verified = router->is_verified;
     /*
   } else {
     if (! router->xx_is_recognized && !from_cache) {
       log_fn(LOG_WARN, "Dropping unrecognized descriptor for router '%s'",
              router->nickname);
+      rouerinfo_free(router);
       return -1;
     }
     */