From 28c802b5fded71ddbe39be41cdb6e4a94c30f098 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Tue, 15 Apr 2008 23:05:44 +0000 Subject: [PATCH] Avoid a rare assert that can trigger when Tor doesn't have much directory information yet and it tries to fetch a v2 hidden service descriptor. Fixes bug 651, reported by nwf. svn:r14373 --- ChangeLog | 3 +++ src/or/connection.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 6b92ae153e..fb1fd5d79a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ Changes in version 0.2.0.24-rc - 2008-04-0? o Minor bugfixes: + - Avoid a rare assert that can trigger when Tor doesn't have much + directory information yet and it tries to fetch a v2 hidden + service descriptor. Fixes bug 651, reported by nwf. - Initialize log mutex before initializing dmalloc. Otherwise, running with dmalloc would crash. Bugfix on 0.2.0.x-alpha. - Do not read the configuration file when we've only been told to diff --git a/src/or/connection.c b/src/or/connection.c index 8168868644..f150727b92 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -485,7 +485,9 @@ connection_about_to_close_connection(connection_t *conn) * retry as needed. (If a fetch is successful, the connection state * is changed to DIR_PURPOSE_HAS_FETCHED_RENDDESC to mark that * refetching is unnecessary.) */ - if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC_V2) + if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC_V2 && + dir_conn->rend_query && + strlen(dir_conn->rend_query) == REND_SERVICE_ID_LEN_BASE32) rend_client_refetch_v2_renddesc(dir_conn->rend_query); break; case CONN_TYPE_OR: