commit 84d18f70f3400df3e9c3b3c47288e82cd9160f6e Author: David Goulet dgoulet@torproject.org Date: Thu Sep 14 13:29:05 2017 -0400
sched: Always call on_channel_free() regardless of state
A channel can bounce in the scheduler and bounce out with the IDLE state which means that if it came in the scheduler once, it has socket information that needs to be freed from the global hash table.
Signed-off-by: David Goulet dgoulet@torproject.org --- src/or/scheduler.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/or/scheduler.c b/src/or/scheduler.c index aaf991407..39427b782 100644 --- a/src/or/scheduler.c +++ b/src/or/scheduler.c @@ -547,11 +547,11 @@ scheduler_release_channel,(channel_t *chan)) offsetof(channel_t, sched_heap_idx), chan); } - if (the_scheduler->on_channel_free) { - the_scheduler->on_channel_free(chan); - } }
+ if (the_scheduler->on_channel_free) { + the_scheduler->on_channel_free(chan); + } chan->scheduler_state = SCHED_CHAN_IDLE; }
tor-commits@lists.torproject.org