mirror repository of the tor core protocol in case of issues
Go to file
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
changes Don't look at any routerstatus_t when the networkstatus is inconsistent 2016-09-20 10:43:58 -04:00
contrib bump to 0.2.8.7-dev 2016-08-24 14:46:08 -04:00
doc Run asciidoc in UTC timezone for build reproducibility. 2016-07-05 12:38:24 -04:00
m4 Add pkg.m4 to use pkgconfig macros 2014-12-23 11:39:48 -05:00
scripts Remove a fallback that was on the hardcoded list, then opted-out 2016-07-29 10:23:15 -04:00
src Don't look at any routerstatus_t when the networkstatus is inconsistent 2016-09-20 10:43:58 -04:00
.gitignore Do not ignore files that are being tracked by git 2016-05-23 11:02:15 -04:00
acinclude.m4 Fedora Core->Fedora; yum->dnf. 2016-03-11 09:13:33 -05:00
autogen.sh Use a nicely written autoconf macro to determine the sign of a type 2013-02-07 16:23:48 -05:00
ChangeLog rewrap changelog 2016-03-28 13:54:50 -04:00
configure.ac bump to 0.2.8.7-dev 2016-08-24 14:46:08 -04:00
Doxyfile.in Use output variables instead of relative paths. 2015-03-14 13:00:04 -04:00
INSTALL Small fixes for the 2702 implementation 2011-04-02 12:15:08 +02:00
LICENSE Update the copyright year. 2016-02-27 18:48:19 +01:00
Makefile.am Merge branch 'maint-0.2.7' into maint-0.2.8 2016-05-09 18:14:44 -04:00
Makefile.nmake Clean up the MVSC nmake files so they work again. 2014-09-09 10:27:05 -04:00
README Move hacking documentation into a new subdirectory. 2015-10-09 10:40:53 -04:00
ReleaseNotes minor changelog cleanups to help the new alpha 2016-03-28 13:20:51 -04:00

Tor protects your privacy on the internet by hiding the connection
between your Internet address and the services you use. We believe Tor
is reasonably secure, but please ensure you read the instructions and
configure it properly.

To build Tor from source:
        ./configure && make && make install

To build Tor from a just-cloned git repository:
        sh autogen.sh && ./configure && make && make install

Home page:
        https://www.torproject.org/

Download new versions:
        https://www.torproject.org/download/download.html

Documentation, including links to installation and setup instructions:
        https://www.torproject.org/docs/documentation.html

Making applications work with Tor:
        https://wiki.torproject.org/projects/tor/wiki/doc/TorifyHOWTO

Frequently Asked Questions:
        https://www.torproject.org/docs/faq.html


To get started working on Tor development:
        See the doc/HACKING directory.