소스 검색

Fix infinite loop in circuit_expire_bulding

Fixes bug 7663; bug introduced in 42e3c04a7a5fb47a9.  Not in any
released version of Tor.
Nick Mathewson 11 년 전
부모
커밋
cd4f56a37c
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      src/or/circuituse.c

+ 3 - 1
src/or/circuituse.c

@@ -382,8 +382,10 @@ circuit_expire_building(void)
    * See bug #3443. */
   while (next_circ) {
     if (!CIRCUIT_IS_ORIGIN(next_circ) || /* didn't originate here */
-        next_circ->marked_for_close) /* don't mess with marked circs */
+        next_circ->marked_for_close) { /* don't mess with marked circs */
+      next_circ = next_circ->next;
       continue;
+    }
 
     if (TO_ORIGIN_CIRCUIT(next_circ)->has_opened &&
         next_circ->state == CIRCUIT_STATE_OPEN &&