aboutsummaryrefslogtreecommitdiff
path: root/changes
AgeCommit message (Collapse)Author
2021-01-29exit: Deny re-entry into the networkRoger Dingledine
Exit relays now reject exit attempts to known relay addresses + ORPort and also to authorities on the ORPort and DirPort. Closes #2667 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-01-28Merge branch 'tor-gitlab/mr/50' into maint-0.3.5David Goulet
2021-01-28Merge branch 'tor-gitlab/mr/239' into maint-0.3.5David Goulet
2021-01-28Merge branch 'tor-gitlab/mr/243' into maint-0.3.5David Goulet
2021-01-28Merge branch 'tor-gitlab/mr/254' into maint-0.3.5David Goulet
2021-01-28Merge remote-tracking branch 'tor-gitlab/mr/140' into maint-0.3.5David Goulet
2021-01-28Merge remote-tracking branch 'tor-gitlab/mr/186' into maint-0.3.5David Goulet
2021-01-21build: Add "make lsp" commandDavid Goulet
Generates the compile_commands.json file using the "bear" application so the ccls server can be more efficient with our code base. Closes #40227 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-01-19Merge remote-tracking branch 'tor-gitlab/mr/143' into maint-0.3.5Nick Mathewson
2021-01-13Better fix for #40241 (--enable-all-bugs-are-fatal and fallthrough)Nick Mathewson
This one should work on GCC _and_ on Clang. The previous version made Clang happier by not having unreachable "fallthrough" statements, but made GCC sad because GCC didn't think that the unconditional failures were really unconditional, and therefore _wanted_ a FALLTHROUGH. This patch adds a FALLTHROUGH_UNLESS_ALL_BUGS_ARE_FATAL macro that seems to please both GCC and Clang in this case: ordinarily it is a FALLTHROUGH, but when ALL_BUGS_ARE_FATAL is defined, it's an abort(). Fixes bug 40241 again. Bugfix on earlier fix for 40241, which was merged into maint-0.3.5 and forward, and released in 0.4.5.3-rc.
2021-01-12hs-v3: Require reasonably live consensusDavid Goulet
Some days before this commit, the network experienced a DDoS on the directory authorities that prevented them to generate a consensus for more than 5 hours straight. That in turn entirely disabled onion service v3, client and service side, due to the subsystem requiring a live consensus to function properly. We know require a reasonably live consensus which means that the HSv3 subsystem will to its job for using the best consensus tor can find. If the entire network is using an old consensus, than this should be alright. If the service happens to use a live consensus while a client is not, it should still work because the client will use the current SRV it sees which might be the previous SRV for the service for which it still publish descriptors for. If the service is using an old one and somehow can't get a new one while clients are on a new one, then reachability issues might arise. However, this is a situation we already have at the moment since the service will simply not work if it doesn't have a live consensus while a client has one. Fixes #40237 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-01-11Fix warnings in current debian-hardened CI.Nick Mathewson
We're getting "fallback annotation annotation in unreachable code" warnings when we build with ALL_BUGS_ARE_FATAL. This patch fixes that. Fixes bug 40241. Bugfix on 0.3.5.4-alpha.
2020-12-17Fix Keccak undefined behavior on exotic platforms.George Kadianakis
Bug reported and diagnosed in: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975977 Fixes bug #40210.
2020-12-14Socks5: handle truncated client requests correctlyNick Mathewson
Previously, our code would send back an error if the socks5 request parser said anything but DONE. But there are other non-error cases, like TRUNCATED: we shouldn't send back errors for them. This patch lowers the responsibility for setting the error message into the parsing code, since the actual type of the error message will depend on what problem was encountered. Fixes bug 40190; bugfix on 0.3.5.1-alpha.
2020-11-16Merge remote-tracking branch 'tor-gitlab/mr/195' into maint-0.3.5Nick Mathewson
2020-11-09Merge remote-tracking branch 'tor-gitlab/mr/189' into maint-0.3.5Nick Mathewson
2020-11-05Handle a change in the implementation of hashlib in Python 3.9Nick Mathewson
Previously, hashlib.shake_256 was a class (if present); now it can also be a function. This change invalidated our old compatibility/workaround code, and made one of our tests fail. Fixes bug 40179; bugfix on 0.3.1.6-rc when the workaround code was added.
2020-10-28Fix a previously overstrict log message check.Nick Mathewson
OpenSSL doesn't seem to report error locations in the same way as before, which broke one of our tests. Fixes bug 40170; bugfix on 0.2.8.1-alpha.
2020-10-28Changes file for #40165 (openssl deprecation warnings)Nick Mathewson
2020-10-14Implement proposal 318: Limit protovers to 0..63Nick Mathewson
In brief: we go through a lot of gymnastics to handle huge protover numbers, but after years of development we're not even close to 10 for any of our current versions. We also have a convenient workaround available in case we ever run out of protocols: if (for example) we someday need Link=64, we can just add Link2=0 or something. This patch is a minimal patch to change tor's behavior; it doesn't take advantage of the new restrictions. Implements #40133 and proposal 318.
2020-10-07Merge remote-tracking branch 'tor-github/pr/1827/head' into maint-0.3.5Nick Mathewson
2020-10-07hs-v2: Add deprecation warning for serviceDavid Goulet
If at least one service is configured as a version 2, a log warning is emitted once and only once. Closes #40003 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-10-07Merge remote-tracking branch 'tor-gitlab/mr/77' into maint-0.3.5Nick Mathewson
2020-10-07Merge remote-tracking branch 'tor-gitlab/mr/79' into maint-0.3.5Nick Mathewson
2020-10-07Merge remote-tracking branch 'tor-github/pr/1661/head' into maint-0.3.5Nick Mathewson
2020-10-07Merge remote-tracking branch 'tor-gitlab/mr/43' into maint-0.3.5Nick Mathewson
2020-10-07Merge remote-tracking branch 'tor-gitlab/mr/137' into maint-0.3.5Nick Mathewson
2020-10-07Merge remote-tracking branch 'tor-gitlab/mr/103' into maint-0.3.5Nick Mathewson
2020-10-07Merge branch 'mr_124_squashed' into maint-0.3.5Nick Mathewson
2020-10-07Parallelize src/test/test into chunks.Nick Mathewson
First, we introduce a flag to teach src/test/test to split its work into chunks. Then we replace our invocation of src/test/test in our "make check" target with a set of 8 scripts that invoke the first 8th of the tests, the second 8th, and so on. This change makes our "make -kj4 check" target in our hardened gitlab build more than twice as fast, since src/test/test was taking the longest to finish. Closes 40098.
2020-09-22srv: Remove spammy debug logDavid Goulet
Fixes #40135 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-09-17Fix underflow in rend_cache/free_all test.Nick Mathewson
We already fixed these in #40099 and #40125. This patch fixes #40126. Bugfix on 0.2.8.1-alpha.
2020-09-17test: Increment rend cache allocation before freeingDavid Goulet
The rend_cache/entry_free was missing the rend cache allocation increment before freeing the object. Without it, it had an underflow bug: Sep 17 08:40:13.845 [warn] rend_cache_decrement_allocation(): Bug: Underflow in rend_cache_decrement_allocation (on Tor 0.4.5.0-alpha-dev 7eef9ced61e72b1d) Fixes #40125 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-09-14Resolve a compilation warning in test_connection.cNick Mathewson
Instead of casting an enum to a void and back, use a string -- that's better C anyway. Fixes bug 40113; bugfix on 0.2.9.3-alpha.
2020-09-07statistics: Properly count all rendezvous cells (avoid undercounting).George Kadianakis
tl;dr We were not counting cells flying from the client to the service, but we were counting cells flying from the service to the client. When a rendezvous cell arrives from the client to the RP, the RP forwards it to the service. For this to happen, the cell first passes through command_process_relay_cell() which normally does the statistics counting. However because the `rend_circ` circuit was not flagged with `circuit_carries_hs_traffic_stats` in rend_mid_rendezvous(), the cell is not counted there. Then the cell goes to circuit_receive_relay_cell() which has a special code block based on `rend_splice` specifically for rendezvous cells, and the cell gets directly passed to `rend_circ` via a direct call to circuit_receive_relay_cell(). The cell never passes through command_process_relay_cell() ever again and hence is never counted by our rephist module. The fix here is to flag the `rend_circ` circuit with `circuit_carries_hs_traffic_stats` so that the cell is counted as soon as it hits command_process_relay_cell(). Furthermore we avoid double-counting cells since the special code block of circuit_receive_relay_cell() makes us count rendezvous cells only as they enter the RP and not as they exit it. Fixes #40117.
2020-09-01conn: Remove assert on new listener connection when retryingDavid Goulet
Opening a new listener connection can fail in many ways like a bind() permission denied on a low port for instance. And thus, we should expect to handle an error when creating a new one instead of assert() on it. To hit the removed assert: ORPort 80 KeepBindCapabilities 0 Start tor. Then edit torrc: ORPort <some-IP>:80 HUP tor and the assert is hit. Fixes #40073 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-08-12Fix allocation counting in clean_v2_descs_as_dir test.Nick Mathewson
Without this fix, running this test on its own would fail. Fixes bug 40099. Bugfix on ade5005853c17b3 in 0.2.8.1-alpha.
2020-08-06Validate ed25519 keys and canonicity from circuit_n_conn_done()Nick Mathewson
Fixes bug 40080. Bugfix on 0.2.7.2-alpha.
2020-08-03Remove channel_is_canonical_is_reliable()Nick Mathewson
This function once served to let circuits continue to be built over version-1 link connections. But such connections are long-obsolete, and it's time to remove this check. Closes #40081.
2020-07-30Fix a bug in buf_move_all() when the input buffer is empty.Nick Mathewson
We found this in #40076, after we started using buf_move_all() in more places. Fixes bug #40076; bugfix on 0.3.3.1-alpha. As far as I know, the crash only affects master, but I think this warrants a backport, "just in case".
2020-07-28Use _lseeki64() on windows.Nick Mathewson
Fixes bug 31036; bugfix on 0.2.1.8-alpha when we moved the logging system to use posix fds.
2020-07-23More info in the fallbackdir changes fileNick Mathewson
2020-07-23fallbackdir: Update list for 2020David Goulet
Closes #40061 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-07-22Treat all extorport connections with un-set addresses as remoteNick Mathewson
Without this fix, if an PT forgets to send a USERADDR command, that results in a connection getting treated as local for the purposes of rate-limiting. If the PT _does_ use USERADDR, we still believe it. Closes ticket 33747.
2020-07-22Adjust the rules for warning about too many connections.Nick Mathewson
Previously we tolerated up to 1.5 connections for every relay we were connected to, and didn't warn if we had fewer than 5 connections total. Now we tolerate up to 1.5 connections per relay, and up to 4 connections per authority, and we don't warn at all when we have fewer than 25 connections total. Fixes bug 33880, which seems to have been provoked by our #17592 change in 0.3.5.
2020-07-14Strip '\r' characters when reading text files on Unix.Alexander Færøy
This patch ensures that we strip "\r" characters on both Windows as well as Unix when we read text files. This should prevent the issue where some Tor state files have been moved from a Windows machine, and thus contains CRLF line ending, to a Unix machine where only \n is needed. We add a test-case to ensure that we handle this properly on all our platforms. See: https://bugs.torproject.org/tpo/core/tor/33781
2020-07-10NSS: Tell NSS that our SSL sockets are nonblocking.Nick Mathewson
Closes ticket 40035.
2020-07-09Merge branch 'trove_2020_001_035' into maint-0.3.5Nick Mathewson
2020-07-07Resolve a compiler warning from a 32-bit signed/unsigned comparisonNick Mathewson
This warning only affects platforms (like win32) with 32-bit time_t. Fixes bug 40028; bugfix on 0.3.2.8-rc.
2020-07-07CI: Fix Appveyor printf format errorDavid Goulet
For some reasons, Appveyor started to use the stdio printf format for 64 bit values (PRIu64, ...). Mingw doesn't like that so force it to use the Windows specific macros by setting D__USE_MINGW_ANSI_STDIO=0. Fixes #40026