From f0fb9f6b0cd63f3c84d1a58ad6f6355b3c2e211b Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Fri, 6 Jan 2006 18:05:48 +0000 Subject: [PATCH] Directory authorities should go to the proper authority when asking for a networkstatus, even when they want a compressed one. (Also, bullet-proof the logic in case we ever accidentally request a networkstatus for a non-authority.) svn:r5740 --- src/or/directory.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/or/directory.c b/src/or/directory.c index 855c0b5f28..405e477761 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -167,13 +167,14 @@ directory_get_from_dirserver(uint8_t purpose, const char *resource, if (directconn) { if (fetch_fresh_first && purpose == DIR_PURPOSE_FETCH_NETWORKSTATUS && - !strcmpstart(resource,"fp/") && strlen(resource) == HEX_DIGEST_LEN+3) { + !strcmpstart(resource,"fp/") && strlen(resource) >= HEX_DIGEST_LEN+3) { /* Try to ask the actual dirserver its opinion. */ char digest[DIGEST_LEN]; trusted_dir_server_t *ds; base16_decode(digest, DIGEST_LEN, resource+3, HEX_DIGEST_LEN); ds = router_get_trusteddirserver_by_digest(digest); - rs = &(ds->fake_status); + if (ds) + rs = &(ds->fake_status); } if (!rs && fetch_fresh_first) { /* only ask authdirservers, and don't ask myself */