From: Roger Dingledine Date: Wed, 2 Apr 2008 20:48:36 +0000 (+0000) Subject: a potential fix for bug 641. X-Git-Tag: tor-0.2.1.1-alpha~218 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1ac11591d2298fdb92a468d8337bd341fd12ee3f;p=thirdparty%2Ftor.git a potential fix for bug 641. svn:r14281 --- diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c index 7d5c4ffb7e..ae24d5fc19 100644 --- a/src/or/connection_edge.c +++ b/src/or/connection_edge.c @@ -2770,7 +2770,10 @@ connection_ap_can_use_exit(edge_connection_t *conn, routerinfo_t *exit) * make sure the exit node of the existing circuit matches exactly. */ if (conn->chosen_exit_name) { - if (router_get_by_nickname(conn->chosen_exit_name, 1) != exit) { + routerinfo_t *chosen_exit = + router_get_by_nickname(conn->chosen_exit_name, 1); + if (!chosen_exit || memcpy(chosen_exit->cache_info.identity_digest, + exit->cache_info.identity_digest, DIGEST_LEN)) { /* doesn't match */ // log_debug(LD_APP,"Requested node '%s', considering node '%s'. No.", // conn->chosen_exit_name, exit->nickname);