summaryrefslogtreecommitdiff
path: root/src/or
AgeCommit message (Collapse)Author
2016-11-01Always call connection_ap_attach_pending() once a second.Nick Mathewson
Fixes bug 19969; bugfix on b1d56fc58. We can fix this some more in later Tors, but for now, this is probably the simplest fix possible. This is a belt-and-suspenders fix, where the earlier fix ("Ask event_base_loop to finish when we add a pending stream") aims to respond to new streams as soon as they arrive, and this one aims to make sure that we definitely respond to all of the streams.
2016-11-01Ask event_base_loop to finish when we add a pending streamRoger Dingledine
Fixes bug 19969; bugfix on b1d56fc58. We can fix this some more in later Tors, but for now, this is probably the right fix for us.
2016-11-01refactor out the tor_event_base_loopexit() callRoger Dingledine
no actual changes
2016-10-17Merge branch 'buf_sentinel_026_v2' into maint-0.2.8Nick Mathewson
2016-10-17Add a one-word sentinel value of 0x0 at the end of each buf_t chunkNick Mathewson
This helps protect against bugs where any part of a buf_t's memory is passed to a function that expects a NUL-terminated input. It also closes TROVE-2016-10-001 (aka bug 20384).
2016-09-23Merge remote-tracking branch 'teor/broken-028-fallbacks' into maint-0.2.8Nick Mathewson
2016-09-22Remove another fallback whose operator opted-outteor
2016-09-22Merge branch 'bug20203_027_squashed' into maint-0.2.8Nick Mathewson
2016-09-22When clearing cells from a circuit for OOM reasons, tell cmux we did so.Nick Mathewson
Not telling the cmux would sometimes cause an assertion failure in relay.c when we tried to get an active circuit and found an "active" circuit with no cells. Additionally, replace that assert with a test and a log message. Fix for bug 20203. This is actually probably a bugfix on 0.2.8.1-alpha, specifically my code in 8b4e5b7ee902fb7fa0776 where I made circuit_mark_for_close_() do less in order to simplify our call graph. Thanks to "cypherpunks" for help diagnosing.
2016-09-20Merge remote-tracking branch 'public/bug20103_028_v3' into maint-0.2.8Nick Mathewson
2016-09-21fixup! Update hard-coded fallback list based on pre-0.2.9 checksteor
2016-09-20Don't look at any routerstatus_t when the networkstatus is inconsistentNick Mathewson
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 35bbf2e4a4e8ccb to make find_dl_schedule start looking at the consensus, and 4460feaf2850ef0 which made node_get_all_orports less (accidentally) tolerant of nodes with a valid ri pointer but dangling rs pointer.
2016-09-20Update hard-coded fallback list based on pre-0.2.9 checksteor
2016-08-24Fix path selection on firewalled clientsteor
Signed-off-by: teor <teor2345@gmail.com>
2016-08-24Merge branch 'maint-0.2.7' into maint-0.2.8Nick Mathewson
2016-08-24Replace Tonga with Bifroest.Isis Lovecruft
* FIXES #19728: https://bugs.torproject.org/19728 * CLOSES #19690: https://bugs.torproject.org/19690
2016-08-22Do not pass NULL to log(%s) in dir_server_new.Nick Mathewson
This bug had existed since 0.2.4.7-alpha, but now that we have FallbackDirs by default, it actually matters. Fixes bug 19947; bugfix on 0.2.4.7-alpha or maybe 0.2.8.1-alpha. Rubiate wrote the patch; teor wrote the changes file.
2016-07-29Remove a fallback that was on the hardcoded list, then opted-outteor (Tim Wilson-Brown)
The fallback was added in 0.2.8.2-alpha.
2016-07-06When checking if a routerstatus is reachable, don't check the nodeteor (Tim Wilson-Brown)
This fixes #19608, allowing IPv6-only clients to use microdescriptors, while preserving the ability of bridge clients to have some IPv4 bridges and some IPv6 bridges. Fix on c281c036 in 0.2.8.2-alpha.
2016-07-05Merge remote-tracking branch 'weasel/bug19557' into maint-0.2.8Nick Mathewson
2016-07-05Merge remote-tracking branch 'weasel/bug19556' into maint-0.2.8Nick Mathewson
2016-07-05Merge branch 'maint-0.2.7' into maint-0.2.8Nick Mathewson
2016-07-05Merge branch 'maint-0.2.6' into maint-0.2.7Nick Mathewson
2016-07-05Merge branch 'maint-0.2.5' into maint-0.2.6Nick Mathewson
2016-07-05Merge branch 'maint-0.2.4' into maint-0.2.5Nick Mathewson
2016-07-03Remove urras as a default trusted directory authoritySebastian Hahn
It had been a directory authority since 0.2.1.20.
2016-07-03sandboxing: allow writing to stats/hidserv-statsPeter Palfrader
Our sandboxing code would not allow us to write to stats/hidserv-stats, causing tor to abort while trying to write stats. This was previously masked by bug#19556.
2016-07-03sandboxing: allow open() of stats dirPeter Palfrader
When sandboxing is enabled, we could not write any stats to disk. check_or_create_data_subdir("stats"), which prepares the private stats directory, calls check_private_dir(), which also opens and not just stats() the directory. Therefore, we need to also allow open() for the stats dir in our sandboxing setup.
2016-07-01When tor can't find a directory, log lessteor (Tim Wilson-Brown)
2016-06-28Merge branch 'bug19071-extra-squashed' into maint-0.2.8Nick Mathewson
2016-06-28Comment-out fallbacks in a way the stem fallback parser understandsteor (Tim Wilson-Brown)
If we manually remove fallbacks in C by adding '/*' and '*/' on separate lines, stem still parses them as being present, because it only looks at the start of a line. Add a comment to this effect in the generated source code.
2016-06-28whitespace fixesNick Mathewson
2016-06-28Merge remote-tracking branch 'teor/bug18812' into maint-0.2.8Nick Mathewson
2016-06-28Resolve bug18812 by logging fallback key changes at info levelteor (Tim Wilson-Brown)
2016-06-28Make it clear that fallbacks include authoritiesteor (Tim Wilson-Brown)
Comment-only change
2016-06-28Refactor connection_or_client_learned_peer_id for bug18812teor (Tim Wilson-Brown)
No behavioural change. Also clarify some comments.
2016-06-23Remove a fallback that changed DirPortteor (Tim Wilson-Brown)
The operator has confirmed that the DirPort change is perament. The relay will be reconsidered as a fallback in 0.2.9.
2016-06-22Remove and blacklist 3 fallbacks which disappearedteor (Tim Wilson-Brown)
Blacklist them in case they appear again.
2016-06-22Remove 2 fallbacks: one lost guard, the other had bad uptimeteor (Tim Wilson-Brown)
Leave these fallbacks in the whitelist, they may improve before 0.2.9.
2016-06-22Remove and blacklist 4 fallbacks which are unsuitableteor (Tim Wilson-Brown)
Remove a fallback that changed its fingerprint after it was listed This happened after to a software update: https://lists.torproject.org/pipermail/tor-relays/2016-June/009473.html Remove a fallback that changed IPv4 address Remove two fallbacks that were slow to deliver consensuses, we can't guarantee they'll be fast in future. Blacklist all these fallbacks until operators confirm they're stable.
2016-06-21Remove useless message about nonexistent onion services after uploading a ↵Ivan Markin
descriptor
2016-06-21Fix bug when disabling heartbeats.George Kadianakis
Callbacks can't return 0.
2016-06-11Merge remote-tracking branch 'public/bug19203_027' into maint-0.2.8Nick Mathewson
2016-06-02Use directory_must_use_begindir to predict we'll surely use begindirNick Mathewson
Previously, we used !directory_fetches_from_authorities() to predict that we would tunnel connections. But the rules have changed somewhat over the course of 0.2.8
2016-05-30Fix a warning on unnamed nodes in node_get_by_nickname().Nick Mathewson
There was a > that should have been an ==, and a missing !. These together prevented us from issuing a warning in the case that a nickname matched an Unnamed node only. Fixes bug 19203; bugfix on 0.2.3.1-alpha.
2016-05-26Fix two long linesNick Mathewson
2016-05-25Fix a double-free bug in routerlist_reparse_oldNick Mathewson
I introduced this bug when I moved signing_key_cert into signed_descriptor_t. Bug not in any released Tor. Fixes bug 19175, and another case of 19128. Just like signed_descriptor_from_routerinfo(), routerlist_reparse_old() copies the fields from one signed_descriptor_t to another, and then clears the fields from the original that would have been double-freed by freeing the original. But when I fixed the s_d_f_r() bug [#19128] in 50cbf220994c7cec593, I missed the fact that the code was duplicated in r_p_o(). Duplicated code strikes again! For a longer-term solution here, I am not only adding the missing fix to r_p_o(): I am also extracting the duplicated code into a new function. Many thanks to toralf for patiently sending me stack traces until one made sense.
2016-05-20Fix a bug related to moving signing_key_certNick Mathewson
Now that the field exists in signed_descriptor_t, we need to make sure we free it when we free a signed_descriptor_t, and we need to make sure that we don't free it when we convert a routerinfo_t to a signed_descriptor_t. But not in any released Tor. I found this while working on #19128. One problem: I don't see how this could cause 19128.
2016-05-19Merge remote-tracking branch 'teor/fix18809-warnings' into maint-0.2.8Nick Mathewson
2016-05-19Merge remote-tracking branch 'public/bug19073' into maint-0.2.8Nick Mathewson