Merge remote-tracking branch 'sebastian/channel_free_list'

This commit is contained in:
Nick Mathewson 2015-09-01 09:19:00 -04:00
commit 2c5fec15f7
2 changed files with 7 additions and 0 deletions

6
changes/bug16924 Normal file
View File

@ -0,0 +1,6 @@
o Minor bugfixes:
- When calling channel_free_list(), avoid calling smartlist_remove()
while inside a FOREACH loop. This partially reverts commit
17356fe7fd96af where the correct SMARTLIST_DEL_CURRENT was
removed. Fixes bug 16929; bugfix on 0.2.4.4-alpha.

View File

@ -3069,6 +3069,7 @@ channel_free_list(smartlist_t *channels, int mark_for_close)
if (curr->cmux) { if (curr->cmux) {
circuitmux_detach_all_circuits(curr->cmux, NULL); circuitmux_detach_all_circuits(curr->cmux, NULL);
} }
SMARTLIST_DEL_CURRENT(channels, curr);
channel_unregister(curr); channel_unregister(curr);
if (mark_for_close) { if (mark_for_close) {
if (!CHANNEL_CONDEMNED(curr)) { if (!CHANNEL_CONDEMNED(curr)) {