Browse Source

Bug 8024: Check for null/closed channel before probing.

Mike Perry 12 years ago
parent
commit
a78542f0c3
2 changed files with 11 additions and 0 deletions
  1. 1 0
      changes/bug7802
  2. 10 0
      src/or/circuitbuild.c

+ 1 - 0
changes/bug7802

@@ -8,3 +8,4 @@
     - Remove a source of rounding error during path bias count scaling.
     - Don't count cannibalized circuits as used for path bias until we
       actually try to use them.
+    - Fix circuit_package_relay_cell warning message about n_chan==NULL.

+ 10 - 0
src/or/circuitbuild.c

@@ -1727,6 +1727,16 @@ pathbias_send_usable_probe(circuit_t *circ)
     return -1;
   }
 
+  /* Can't probe if the channel isn't open */
+  if (circ->n_chan == NULL ||
+      (circ->n_chan->state != CHANNEL_STATE_OPEN
+       && circ->n_chan->state != CHANNEL_STATE_MAINT)) {
+    log_info(LD_CIRC,
+             "Skipping pathbias probe for circuit %d: Channel is not open.",
+             ocirc->global_identifier);
+    return -1;
+  }
+
   circuit_change_purpose(circ, CIRCUIT_PURPOSE_PATH_BIAS_TESTING);
 
   /* Update timestamp for when circuit_expire_building() should kill us */