don't double-detach a closing exit conn that's waiting for dns resolve

svn:r3477
This commit is contained in:
Roger Dingledine 2005-01-31 01:27:49 +00:00
parent 692a57c8e8
commit a0312f3590

View File

@ -215,6 +215,7 @@ void connection_free_all(void) {
*/ */
void connection_about_to_close_connection(connection_t *conn) void connection_about_to_close_connection(connection_t *conn)
{ {
circuit_t *circ;
assert(conn->marked_for_close); assert(conn->marked_for_close);
@ -271,7 +272,9 @@ void connection_about_to_close_connection(connection_t *conn)
break; break;
case CONN_TYPE_EXIT: case CONN_TYPE_EXIT:
if (conn->state == EXIT_CONN_STATE_RESOLVING) { if (conn->state == EXIT_CONN_STATE_RESOLVING) {
circuit_detach_stream(circuit_get_by_conn(conn), conn); circ = circuit_get_by_conn(conn);
if (circ)
circuit_detach_stream(circ, conn);
connection_dns_remove(conn); connection_dns_remove(conn);
} }
break; break;