summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorteor (Tim Wilson-Brown) <teor2345@gmail.com>2016-03-24 22:03:58 +1100
committerteor (Tim Wilson-Brown) <teor2345@gmail.com>2016-03-24 22:03:58 +1100
commitb1569e39c87a32b64fe06702c1f18b43eb35f5ad (patch)
treee9cb29367b7c595c51e6b15eac2f85cddd6f133e /src
parenteb5a262a15c05bee8e64e66c93f3a6387c0c5cd6 (diff)
downloadtor-b1569e39c87a32b64fe06702c1f18b43eb35f5ad.tar.gz
tor-b1569e39c87a32b64fe06702c1f18b43eb35f5ad.zip
Check if fallbacks support extrainfo descriptors before requesting them
When requesting extrainfo descriptors from a trusted directory server, check whether it is an authority or a fallback directory which supports extrainfo descriptors. Fixes bug 18489; bugfix on 90f6071d8d in tor-0.2.4.7-alpha. Reported by "atagar", patch by "teor".
Diffstat (limited to 'src')
-rw-r--r--src/or/routerlist.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index ecfcb9bd08..7ec84f038a 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -1857,8 +1857,10 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist,
if (!d->is_running) continue;
if ((type & d->type) == 0)
continue;
+ int is_trusted_extrainfo = router_digest_is_trusted_dir_type(
+ d->digest, EXTRAINFO_DIRINFO);
if ((type & EXTRAINFO_DIRINFO) &&
- !router_supports_extrainfo(d->digest, 1))
+ !router_supports_extrainfo(d->digest, is_trusted_extrainfo))
continue;
if (requireother && me && router_digest_is_me(d->digest))
continue;