aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2009-11-23 10:16:38 -0500
committerRoger Dingledine <arma@torproject.org>2009-11-23 10:16:38 -0500
commitcee9a28d1e4e55fb239da38908b7280ffeef1c72 (patch)
treebc3f092a73f79f5a07181ca32f78e688a9b5c5ec
parent403f99eaa48b0374c9a21f624f81ecae521734b3 (diff)
parenta89f51c936f8bd3c2aef3e9472d5310c83dc8fa7 (diff)
downloadtor-cee9a28d1e4e55fb239da38908b7280ffeef1c72.tar
tor-cee9a28d1e4e55fb239da38908b7280ffeef1c72.tar.gz
Merge commit 'origin/maint-0.2.1'
-rw-r--r--ChangeLog3
-rw-r--r--src/or/circuitlist.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 24f835f35..b33197b91 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -336,6 +336,9 @@ Changes in Version 0.2.1.21 - 20??-??-??
handshake from working unless we explicitly tell OpenSSL that we are
using SSL renegotiation safely. We are, of course, but OpenSSL
0.9.8l won't work unless we say we are.
+ - Avoid crashing if the client is trying to upload many bytes and the
+ circuit gets torn down at the same time, or if the flip side
+ happens on the exit relay. Bugfix on 0.2.0.1-alpha; fixes bug 1150.
o Minor bugfixes:
- Do not refuse to learn about authority certs and v2 networkstatus
diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c
index 3efeabe78..02bf925ba 100644
--- a/src/or/circuitlist.c
+++ b/src/or/circuitlist.c
@@ -1103,6 +1103,7 @@ _circuit_mark_for_close(circuit_t *circ, int reason, int line,
edge_connection_t *conn;
for (conn=or_circ->n_streams; conn; conn=conn->next_stream)
connection_edge_destroy(or_circ->p_circ_id, conn);
+ or_circ->n_streams = NULL;
while (or_circ->resolving_streams) {
conn = or_circ->resolving_streams;
@@ -1126,6 +1127,7 @@ _circuit_mark_for_close(circuit_t *circ, int reason, int line,
edge_connection_t *conn;
for (conn=ocirc->p_streams; conn; conn=conn->next_stream)
connection_edge_destroy(circ->n_circ_id, conn);
+ ocirc->p_streams = NULL;
}
circ->marked_for_close = line;