Look at the right consensus in router_add_to_routerlist()

Just looking at the "latest" consensus could give us a microdesc
consensus, if microdescs were enabled. That would make us decide
that every routerdesc was unlisted in the latest consensus and drop
them all: Ouch.

Fixes bug 3113; bugfix on 0.2.3.1-alpha.
This commit is contained in:
Nick Mathewson 2011-07-11 10:02:24 -04:00
parent 3799ce7970
commit 60832766ac
2 changed files with 6 additions and 1 deletions

4
changes/bug3113 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes:
- Do not free all general-purposes regular descriptors just
because microdescriptor use is enabled. Fixes bug 3113;
bugfix on 0.2.3.1-alpha.

View File

@ -3273,7 +3273,8 @@ router_add_to_routerlist(routerinfo_t *router, const char **msg,
int authdir = authdir_mode_handles_descs(options, router->purpose);
int authdir_believes_valid = 0;
routerinfo_t *old_router;
networkstatus_t *consensus = networkstatus_get_latest_consensus();
networkstatus_t *consensus =
networkstatus_get_latest_consensus_by_flavor(FLAV_NS);
const smartlist_t *networkstatus_v2_list = networkstatus_get_v2_list();
int in_consensus = 0;