Merge remote-tracking branch 'teor/bug18489'

This commit is contained in:
Nick Mathewson 2016-03-24 09:01:28 -04:00
commit ea9472d085
2 changed files with 10 additions and 2 deletions

6
changes/bug18489 Normal file
View File

@ -0,0 +1,6 @@
o Minor bugfixes (fallback directory mirrors):
- 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".

View File

@ -1857,11 +1857,13 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist,
if (!d->is_running) continue; if (!d->is_running) continue;
if ((type & d->type) == 0) if ((type & d->type) == 0)
continue; continue;
int is_trusted_extrainfo = router_digest_is_trusted_dir_type(
d->digest, EXTRAINFO_DIRINFO);
if ((type & EXTRAINFO_DIRINFO) && if ((type & EXTRAINFO_DIRINFO) &&
!router_supports_extrainfo(d->digest, 1)) !router_supports_extrainfo(d->digest, is_trusted_extrainfo))
continue; continue;
if (requireother && me && router_digest_is_me(d->digest)) if (requireother && me && router_digest_is_me(d->digest))
continue; continue;
if (try_excluding && if (try_excluding &&
routerset_contains_routerstatus(options->ExcludeNodes, routerset_contains_routerstatus(options->ExcludeNodes,
&d->fake_status, -1)) { &d->fake_status, -1)) {