瀏覽代碼

Avoid perma-blocking the controller on bug in shrink_freelist

In all likelihood, this bug would make Tor assert, but if it doesn't,
let's not have two bugs.
Nick Mathewson 13 年之前
父節點
當前提交
dbba84c917
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      src/or/buffers.c

+ 2 - 1
src/or/buffers.c

@@ -283,7 +283,7 @@ buf_shrink_freelists(int free_all)
                    orig_n_to_skip, (int)freelists[i].alloc_size,
                    orig_n_to_skip-n_to_skip, freelists[i].cur_length);
           assert_freelist_ok(&freelists[i]);
-          return;
+          goto done;
         }
         // tor_assert((*chp)->next);
         chp = &(*chp)->next;
@@ -318,6 +318,7 @@ buf_shrink_freelists(int free_all)
     freelists[i].lowest_length = freelists[i].cur_length;
     assert_freelist_ok(&freelists[i]);
   }
+ done:
   enable_control_logging();
 #else
   (void) free_all;