From: Sebastian Hahn Date: Wed, 2 Nov 2011 19:57:23 +0000 (+0100) Subject: Resolve a crash when running as dirauth X-Git-Tag: tor-0.2.3.8-alpha~64 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c98faa1a23661583ab92813bb569ce6b16ddb33b;p=thirdparty%2Ftor.git Resolve a crash when running as dirauth When we're asked for our own descriptor, don't crash. --- diff --git a/changes/bridgeauth_crash b/changes/bridgeauth_crash new file mode 100644 index 0000000000..74b9d03d10 --- /dev/null +++ b/changes/bridgeauth_crash @@ -0,0 +1,4 @@ + o Major bugfixes: + - Don't crash when we, as the bridge authority, are asked for our own + descriptor. Bugfix on 0.2.3.7-alpha, reported by Lucky. + diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 288fca99b8..4dc0403add 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -3590,8 +3590,9 @@ connection_dirserv_add_servers_to_outbuf(dir_connection_t *conn) if (options->BridgeAuthoritativeDir && by_fp) { const routerinfo_t *router = router_get_by_id_digest(sd->identity_digest); - tor_assert(router); - if (router->purpose == ROUTER_PURPOSE_BRIDGE) + /* router can be NULL here when the bridge auth is asked for its own + * descriptor. */ + if (router && router->purpose == ROUTER_PURPOSE_BRIDGE) rep_hist_note_desc_served(sd->identity_digest); } body = signed_descriptor_get_body(sd);