summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-09-01 09:19:00 -0400
committerNick Mathewson <nickm@torproject.org>2015-09-01 09:19:00 -0400
commit2c5fec15f7542a3190e3f406820c998bdecdc5f7 (patch)
tree4bee6be0b4b49365b6369d75b721693362d73ae4
parent6034e2133151fff25fb4aeed3b38efaab9e05532 (diff)
parentbbb73eaf31d3df5cde70ac4ca7145ffca053d53e (diff)
downloadtor-2c5fec15f7542a3190e3f406820c998bdecdc5f7.tar.gz
tor-2c5fec15f7542a3190e3f406820c998bdecdc5f7.zip
Merge remote-tracking branch 'sebastian/channel_free_list'
-rw-r--r--changes/bug169246
-rw-r--r--src/or/channel.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/changes/bug16924 b/changes/bug16924
new file mode 100644
index 0000000000..a1bc96e54d
--- /dev/null
+++ b/changes/bug16924
@@ -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.
+
diff --git a/src/or/channel.c b/src/or/channel.c
index af095026e4..21522a5303 100644
--- a/src/or/channel.c
+++ b/src/or/channel.c
@@ -3069,6 +3069,7 @@ channel_free_list(smartlist_t *channels, int mark_for_close)
if (curr->cmux) {
circuitmux_detach_all_circuits(curr->cmux, NULL);
}
+ SMARTLIST_DEL_CURRENT(channels, curr);
channel_unregister(curr);
if (mark_for_close) {
if (!CHANNEL_CONDEMNED(curr)) {