Browse Source

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.
Nick Mathewson 13 years ago
parent
commit
60832766ac
2 changed files with 6 additions and 1 deletions
  1. 4 0
      changes/bug3113
  2. 2 1
      src/or/routerlist.c

+ 4 - 0
changes/bug3113

@@ -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.

+ 2 - 1
src/or/routerlist.c

@@ -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;