Browse Source

Fix infinite loop in circuit_expire_bulding

Fixes bug 7663; bug introduced in 42e3c04a7a5fb47a9.  Not in any
released version of Tor.
Nick Mathewson 11 years ago
parent
commit
cd4f56a37c
1 changed files with 3 additions and 1 deletions
  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 &&