Add an extra check in channel_send_destroy for circID==0

Prevents other cases of 12848.
This commit is contained in:
Nick Mathewson 2014-08-12 12:14:05 -04:00
parent b32a8b024c
commit 981e037fd3

View File

@ -2625,6 +2625,14 @@ channel_send_destroy(circid_t circ_id, channel_t *chan, int reason)
cell_t cell;
tor_assert(chan);
if (circ_id == 0) {
log_warn(LD_BUG, "Attempted to send a destroy cell for circID 0 "
"on a channel " U64_FORMAT " at %p in state %s (%d)",
U64_PRINTF_ARG(chan->global_identifier),
chan, channel_state_to_string(chan->state),
chan->state);
return 0;
}
/* Check to make sure we can send on this channel first */
if (!(chan->state == CHANNEL_STATE_CLOSING ||