summaryrefslogtreecommitdiff
path: root/src/or/dns.c
diff options
context:
space:
mode:
authorRoger Dingledine <arma@torproject.org>2004-05-21 12:25:15 +0000
committerRoger Dingledine <arma@torproject.org>2004-05-21 12:25:15 +0000
commitf51061439b086e5eef460023a02893cfb8931d65 (patch)
tree16d2e1c12715fa89aafbe7f8a71bfc41e0bc00eb /src/or/dns.c
parent3532ba8177dc79a5f5ee014403e5d747ef1a12cd (diff)
downloadtor-f51061439b086e5eef460023a02893cfb8931d65.tar.gz
tor-f51061439b086e5eef460023a02893cfb8931d65.zip
when the dns resolve is cancelled, or fails, be sure to remove
conn from circ->resolving_streams otherwise it gets freed and stays there, causing seg faults. svn:r1915
Diffstat (limited to 'src/or/dns.c')
-rw-r--r--src/or/dns.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/or/dns.c b/src/or/dns.c
index f00868d9f1..0106c4d814 100644
--- a/src/or/dns.c
+++ b/src/or/dns.c
@@ -436,6 +436,7 @@ static void dns_found_answer(char *address, uint32_t addr, char outcome) {
connection_mark_for_close macro */
/* prevent double-remove. */
pendconn->state = EXIT_CONN_STATE_RESOLVEFAILED;
+ circuit_detach_stream(circuit_get_by_conn(pendconn), pendconn);
connection_edge_end(pendconn, END_STREAM_REASON_MISC, pendconn->cpath_layer);
connection_mark_for_close(pendconn);
connection_free(pendconn);