summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-09-12 11:10:59 -0400
committerNick Mathewson <nickm@torproject.org>2012-09-12 11:10:59 -0400
commit1f5a7917f5e742c9d64c835439a5ea337e9e934a (patch)
tree32a2f68e4385ae2c2711f316fd2a39b6a2bae2fe
parent4aff97cfc7965414ad8506ce28a296da1bc4a161 (diff)
parent5ade2786050dcf07ee6491145add86da5c21739d (diff)
downloadtor-1f5a7917f5e742c9d64c835439a5ea337e9e934a.tar.gz
tor-1f5a7917f5e742c9d64c835439a5ea337e9e934a.zip
Merge remote-tracking branch 'public/bug6341_a_v2' into maint-0.2.3
-rw-r--r--changes/bug63415
-rw-r--r--src/or/relay.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/changes/bug6341 b/changes/bug6341
new file mode 100644
index 0000000000..04e52c7cd3
--- /dev/null
+++ b/changes/bug6341
@@ -0,0 +1,5 @@
+ o Major bugfixes:
+ - Fix a possible crash bug when checking for deactivated circuits
+ in connection_or_flush_from_first_active_circuit(). Fixes bug
+ 6341; bugfix on 0.2.2.7-alpha. Bug report and fix received
+ pseudonymously.
diff --git a/src/or/relay.c b/src/or/relay.c
index 3d261c2650..5f7fcd8b7c 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -2478,7 +2478,7 @@ connection_or_flush_from_first_active_circuit(or_connection_t *conn, int max,
tor_assert(tmp == cell_ewma);
add_cell_ewma_to_conn(conn, cell_ewma);
}
- if (circ != conn->active_circuits) {
+ if (!ewma_enabled && circ != conn->active_circuits) {
/* If this happens, the current circuit just got made inactive by
* a call in connection_write_to_buf(). That's nothing to worry about:
* circuit_make_inactive_on_conn() already advanced conn->active_circuits