aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-02-24Merge remote-tracking branch 'tor-gitlab/mr/306'George Kadianakis
2021-02-23Merge branch 'maint-0.4.5'David Goulet
2021-02-23Merge branch 'tor-gitlab/mr/326' into maint-0.4.5David Goulet
2021-02-23Remove mallinfo() from codebaseDavid Goulet
Now deprecated in libc >= 2.33 Closes #40309 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-23Merge remote-tracking branch 'tor-gitlab/mr/320'Nick Mathewson
2021-02-23dos: Change the DoS heartbeat line formatDavid Goulet
Fix a bug introduced in 94b56eaa7597e4a091a5b51d2c9032ea046631e3 which overwrite the connection message line. Furthermore, improve how we generate that line by using a smartlist and change the format so it is clearer of what is being rejected/detected and, if applicable, which option is disabled thus yielding no stats. Closes #40308 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-23Merge remote-tracking branch 'origin/master'Nick Mathewson
2021-02-23Tweak documentation on 40282Nick Mathewson
2021-02-23Merge branch 'ticket40282_046_01_squashed'Nick Mathewson
2021-02-23changes: Add changes file for #40282David Goulet
Closes #40282 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-23man: Note that relay now ignore the DirPort optionDavid Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-22Merge remote-tracking branch 'tor-gitlab/mr/276'Alexander Færøy
2021-02-22test: Add DoS connection rate unit testDavid Goulet
Related to #40253 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-22dos: Move concurrent count into conn_stats objectDavid Goulet
No behavior change except for logging. This is so the connection related statistics are in the right object. Related to #40253 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-22dos: New client connect rate detectionDavid Goulet
This is a new detection type which is that a relay can now control the rate of client connections from a single address. The mechanism is pretty simple, if the rate/burst is reached, the address is marked for a period of time and any connection from that address is denied. Closes #40253 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-22Merge remote-tracking branch 'tor-gitlab/mr/319'Nick Mathewson
2021-02-22Merge branch 'maint-0.4.5'Nick Mathewson
2021-02-22Merge remote-tracking branch 'tor-gitlab/mr/316' into maint-0.4.5Nick Mathewson
2021-02-22relay: Reduce streaming compression ratio from HIGH to LOWDavid Goulet
Fixes #40301 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-22Merge branch 'maint-0.4.5'Alexander Færøy
2021-02-22Merge remote-tracking branch 'tor-gitlab/mr/309' into maint-0.4.5Alexander Færøy
2021-02-22relay: Move log notice after suggested address lookupDavid Goulet
When trying to find our address to publish, we would log notice if we couldn't find it from the cache but then we would look at the suggested cache (which contains the address from the authorities) in which we might actually have the address. Thus that log notice was misplaced. Move it down after the suggested address cache lookup. Closes #40300 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-22relay: Only authorities publish a DirPortDavid Goulet
Relay will always publish 0 as DirPort value in their descriptor from now on except authorities. Related to #40282 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-22relay: Remove dirport reachability self testDavid Goulet
Regular relays are about to get their DirPort removed so that reachability test is not useful anymore Authorities will still use the DirPort but because network reentry towards their DirPort is now denied network wide, this test is not useful anymore and so it should simply be considered reachable at all time. Part of #40282 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-22Fix a test failure in test_hs_control_add_onion_helper_add_service().George Kadianakis
This bug made the pipeline fail. It basically tries to access a service we just freed because it's still on the service list. It only occurs about once every 10 tests and it looks like this: $ ./src/test/test hs_control/hs_control_add_onion_helper_add_service hs_control/hs_control_add_onion_helper_add_service: [forking] ================================================================= ==354311==ERROR: AddressSanitizer: heap-use-after-free on address 0x613000000940 at pc 0x55a159251b03 bp 0x7ffc6abb5b30 sp 0x7ffc6abb5b28 READ of size 8 at 0x613000000940 thread T0 ^[[A #0 0x55a159251b02 in hs_service_ht_HT_FIND_P_ src/feature/hs/hs_service.c:153 #1 0x55a159251b02 in hs_service_ht_HT_FIND src/feature/hs/hs_service.c:153 #2 0x55a159251b02 in find_service src/feature/hs/hs_service.c:175 #3 0x55a159251c2c in register_service src/feature/hs/hs_service.c:188 #4 0x55a159262379 in hs_service_add_ephemeral src/feature/hs/hs_service.c:3811 #5 0x55a158e865e6 in test_hs_control_add_onion_helper_add_service src/test/test_hs_control.c:847 #6 0x55a1590fe77b in testcase_run_bare_ src/ext/tinytest.c:107 #7 0x55a1590fee98 in testcase_run_forked_ src/ext/tinytest.c:201 #8 0x55a1590fee98 in testcase_run_one src/ext/tinytest.c:267 #9 0x55a1590ffb06 in tinytest_main src/ext/tinytest.c:454 #10 0x55a158b1b1a4 in main src/test/testing_common.c:420 #11 0x7f7f06f8dd09 in __libc_start_main ../csu/libc-start.c:308 #12 0x55a158b21f69 in _start (/home/f/Computers/tor/mytor/src/test/test+0x372f69) 0x613000000940 is located 64 bytes inside of 344-byte region [0x613000000900,0x613000000a58) freed by thread T0 here: #0 0x7f7f0774ab6f in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:123 #1 0x55a158e86508 in test_hs_control_add_onion_helper_add_service src/test/test_hs_control.c:838 #2 0x55a1590fe77b in testcase_run_bare_ src/ext/tinytest.c:107 #3 0x55a1590fee98 in testcase_run_forked_ src/ext/tinytest.c:201 #4 0x55a1590fee98 in testcase_run_one src/ext/tinytest.c:267 #5 0x55a1590ffb06 in tinytest_main src/ext/tinytest.c:454 #6 0x55a158b1b1a4 in main src/test/testing_common.c:420 #7 0x7f7f06f8dd09 in __libc_start_main ../csu/libc-start.c:308 previously allocated by thread T0 here: #0 0x7f7f0774ae8f in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145 #1 0x55a15948b728 in tor_malloc_ src/lib/malloc/malloc.c:45 #2 0x55a15948b7c0 in tor_malloc_zero_ src/lib/malloc/malloc.c:71 #3 0x55a159261bb5 in hs_service_new src/feature/hs/hs_service.c:4290 #4 0x55a159261f49 in hs_service_add_ephemeral src/feature/hs/hs_service.c:3758 #5 0x55a158e8619f in test_hs_control_add_onion_helper_add_service src/test/test_hs_control.c:832 #6 0x55a1590fe77b in testcase_run_bare_ src/ext/tinytest.c:107 #7 0x55a1590fee98 in testcase_run_forked_ src/ext/tinytest.c:201 #8 0x55a1590fee98 in testcase_run_one src/ext/tinytest.c:267 #9 0x55a1590ffb06 in tinytest_main src/ext/tinytest.c:454 #10 0x55a158b1b1a4 in main src/test/testing_common.c:420 #11 0x7f7f06f8dd09 in __libc_start_main ../csu/libc-start.c:308 SUMMARY: AddressSanitizer: heap-use-after-free src/feature/hs/hs_service.c:153 in hs_service_ht_HT_FIND_P_ Shadow bytes around the buggy address: 0x0c267fff80d0: 00 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa 0x0c267fff80e0: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 0x0c267fff80f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c267fff8100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c267fff8110: 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa =>0x0c267fff8120: fd fd fd fd fd fd fd fd[fd]fd fd fd fd fd fd fd 0x0c267fff8130: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x0c267fff8140: fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa 0x0c267fff8150: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00 0x0c267fff8160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0c267fff8170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc ==354311==ABORTING [Lost connection!] [hs_control_add_onion_helper_add_service FAILED] 1/1 TESTS FAILED. (0 skipped)
2021-02-22Fix CID 1473232 in connection_ap_handle_onion().George Kadianakis
Now that v2 is off the table, 'rend_cache_lookup_result' is useless in connection_ap_handle_onion() because it can only take the ENOENT value. Let's remove that helper variable and handle the ENOENT case specifically when we check the cache. Also remove the 'onion_address' helper variable.
2021-02-22Refactoring: Remove 'addresstype' from connection_ap_handle_onion().George Kadianakis
It's all v3 now. Preparation for fixing CID 1473232.
2021-02-22Fix CID 1473233 in handle_control_hsfetch().George Kadianakis
With v2 support for HSFETCH gone, we only support v3 addresses. We don't support v2 descriptor IDs anymore and hence we can remove that code. The code removed would ensure that if a v2 descriptor ID was provided, the user also had to provide HSDirs explicitly. In the v3 case, the code should work even if no HSDirs are provided, and Tor would find the HSDirs itself.
2021-02-19Make dirauths vote the Sybil flag when other flags are zeroed outNeel Chauhan
2021-02-19hs-v2: Warn of v2 obsolete if configuredDavid Goulet
For a user using "HiddenServiceVersion 2", a log warning is emitted indicating that v2 is now obsolete instead of a confusing message saying that the version is not supported. Also, if an introduction point gets a legacy (v2) ESTABLISH_INTRO, we'll simply close the circuit without emitting a protocol warning log onto the relay. Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19test: Exclude HSv2 test from Stem CI driverDavid Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19hs: Remove last artefact of HSv2 in the codeDavid Goulet
Closes #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19hs: Remove v2 code from HS circuitmapDavid Goulet
Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19hs: Remove v2 statsDavid Goulet
We still keep v2 rendezvous stats since we will allow them until the network has entirely phased out. Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19test: Change chutney test to use HSv3 onlyDavid Goulet
Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19man: Cleanup of v2 options and configDavid Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19or: Cleanup or.h header of HSv2 codeDavid Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19hs: Remove introduction point v2 supportDavid Goulet
Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19hs-v2: Removal of service and relay supportDavid Goulet
This is unfortunately massive but both functionalities were extremely intertwined and it would have required us to actually change the HSv2 code in order to be able to split this into multiple commits. After this commit, there are still artefacts of v2 in the code but there is no more support for service, intro point and HSDir. The v2 support for rendezvous circuit is still available since that code is the same for the v3 and we will leave it in so if a client is able to rendezvous on v2 then it can still transfer traffic. Once the entire network has moved away from v2, we can remove v2 rendezvous point support. Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19hs: Rename service config port objectDavid Goulet
Remove it from rendservice.c and move everything related to hs_common.{c|h}. Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19hs-v2: Remove client supportDavid Goulet
Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19Merge branch 'maint-0.4.5'George Kadianakis
2021-02-19Merge remote-tracking branch 'tor-gitlab/mr/308' into maint-0.4.5George Kadianakis
2021-02-19Merge remote-tracking branch 'tor-gitlab/mr/308'George Kadianakis
2021-02-19Merge remote-tracking branch 'tor-gitlab/mr/305'George Kadianakis
2021-02-18Merge branch 'bug40168+34088-035-v3' into bug40168+34088-035-v3-masterMike Perry
2021-02-18Add CBT unit test for Xm and alpha estimation.Mike Perry
2021-02-18Update documentation for the number of modes for Xm estimator.Mike Perry
2021-02-18Bug 34088: Changes fileMike Perry
2021-02-18Bug 34088: Remove max timeout calculation and warning.Mike Perry
With the maximum likelihood estimator for alpha from #40168, we no longer need max_time to calculate alpha.