瀏覽代碼

Fix memory leak in routerlist_remove_old_routers().

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

+ 3 - 1
src/or/routerlist.c

@@ -1802,7 +1802,7 @@ routerlist_remove_old_routers(void)
    */
   if (smartlist_len(routerlist->old_routers) <
       smartlist_len(routerlist->routers) * (MAX_DESCRIPTORS_PER_ROUTER - 1))
-    return;
+    goto done;
 
   smartlist_sort(routerlist->old_routers, _compare_old_routers_by_identity);
 
@@ -1823,6 +1823,8 @@ routerlist_remove_old_routers(void)
   if (hi>=0)
     routerlist_remove_old_cached_routers_with_id(cutoff, 0, hi, retain);
   routerlist_assert_ok(routerlist);
+
+ done:
   digestmap_free(retain, NULL);
 }