Files
tor/changes
Nick Mathewson 9b5a19c64b Don't look at any routerstatus_t when the networkstatus is inconsistent
For a brief moment in networkstatus_set_current_consensus(), the old
consensus has been freed, but the node_t objects still have dead
pointers to the routerstatus_t objects within it.  During that
interval, we absolutely must not do anything that would cause Tor to
look at those dangling pointers.

Unfortunately, calling the (badly labeled!) current_consensus macro
or anything else that calls into we_use_microdescriptors_for_circuits(),
can make us look at the nodelist.

The fix is to make sure we identify the main consensus flavor
_outside_ the danger zone, and to make the danger zone much much
smaller.

Fixes bug 20103.  This bug has been implicitly present for AGES; we
just got lucky for a very long time.  It became a crash bug in
0.2.8.2-alpha when we merged 35bbf2e4a4 to make
find_dl_schedule start looking at the consensus, and 4460feaf28
which made node_get_all_orports less (accidentally) tolerant of
nodes with a valid ri pointer but dangling rs pointer.
2016-09-20 10:43:58 -04:00
..
2016-07-05 13:51:21 -04:00
2016-05-17 11:05:57 -04:00
2016-07-13 09:19:23 -04:00
2016-05-17 11:06:41 -04:00
2016-05-17 11:05:57 -04:00
2016-05-17 11:05:57 -04:00
2016-05-17 11:05:57 -04:00
2016-05-17 11:05:57 -04:00
2016-05-17 11:05:57 -04:00
2016-05-17 11:05:57 -04:00
2016-05-12 14:37:27 -04:00
2016-05-17 11:06:41 -04:00
2016-06-13 13:57:03 -04:00
2016-06-14 12:13:09 -04:00
2016-06-21 08:54:30 -04:00
2016-07-05 12:58:05 -04:00
2016-07-05 12:58:05 -04:00
2016-07-05 12:58:05 -04:00
2016-07-17 13:51:45 -04:00
2016-08-24 10:02:42 -04:00
2016-08-24 10:34:00 -04:00
2016-05-17 11:05:57 -04:00
2016-05-17 11:05:57 -04:00
2016-05-17 11:05:57 -04:00
2016-06-13 13:57:03 -04:00
2016-05-17 11:05:57 -04:00