From: Roger Dingledine Date: Fri, 9 Apr 2004 21:06:14 +0000 (+0000) Subject: if dns resolve is valid, but our exit policy rejects it or X-Git-Tag: tor-0.0.6incompat-merged~57 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=23c193c065cced56ce62bc2090ba133aee1f95b4;p=thirdparty%2Ftor.git if dns resolve is valid, but our exit policy rejects it or the connect attempt fails immediately, we were trying to double-remove it from the dns pending list. i think this might have been The Bug. (thanks weasel!) svn:r1587 --- diff --git a/src/or/dns.c b/src/or/dns.c index 85676e129f..c6b6b373f3 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -376,9 +376,9 @@ static void dns_found_answer(char *address, uint32_t addr, char outcome) { pend = resolve->pending_connections; assert_connection_ok(pend->conn,time(NULL)); pend->conn->addr = resolve->addr; + /* prevent double-remove */ + pend->conn->state = EXIT_CONN_STATE_RESOLVEFAILED; if(resolve->state == CACHE_STATE_FAILED) { - /* prevent double-remove */ - pend->conn->state = EXIT_CONN_STATE_RESOLVEFAILED; pendconn = pend->conn; /* don't pass complex things to the connection_mark_for_close macro */ connection_mark_for_close(pendconn, END_STREAM_REASON_RESOLVEFAILED);