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

This commit is contained in:
Mike Perry 2013-01-22 21:03:28 -08:00
parent b810d322bf
commit a78542f0c3
2 changed files with 11 additions and 0 deletions

View File

@ -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.

View File

@ -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 */