From 0289144229ea73f5c5ed514b14dac775a7385a29 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Mon, 14 Feb 2005 21:16:27 +0000 Subject: [PATCH] Fix another crash bug found by Jaroslaw--it is possible for dns_resolve to mark a connection to be freed, if the circuit it was attached to fails for some reason. svn:r3623 --- src/or/connection_edge.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 65ec80aaf9..b45f75b175 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -910,7 +910,8 @@ int connection_exit_begin_resolve(cell_t *cell, circuit_t *circ) { /* Connection freed; don't touch it. */ return 0; case 1: /* The result was cached; a resolved cell was sent. */ - connection_free(dummy_conn); + if (!dummy_conn->marked_for_close) + connection_free(dummy_conn); return 0; case 0: /* resolve added to pending list */ dummy_conn->next_stream = circ->resolving_streams;