Commit graph

27679 commits

Author SHA1 Message Date
Alex Xu (Hello71)
87b2ce6f84 Trigger OOS on bind failures (fixes #40597) 2022-05-21 21:30:06 -04:00
David Goulet
4f038d224f Merge branch 'tor-gitlab/mr/489' 2022-05-16 08:51:00 -04:00
David Goulet
0f7a1f0351 Merge branch 'tor-gitlab/mr/561' 2022-05-16 08:45:15 -04:00
David Goulet
2a4663fee8 Merge branch 'tor-gitlab/mr/562' 2022-05-16 08:43:42 -04:00
Alexander Færøy
20112c13ac Merge branch 'maint-0.4.7' 2022-05-09 14:37:26 +00:00
Alexander Færøy
5f2b75aafd Merge branch 'maint-0.4.6' into maint-0.4.7 2022-05-09 14:37:26 +00:00
Alexander Færøy
4ba89c0ccc Merge branch 'maint-0.4.5' into maint-0.4.6 2022-05-09 14:37:26 +00:00
pmu-ipf
d422a66f87 sandbox: Permit rseq syscall as well
This was found to be necessary in conjunction with glibc 2.35 on Linux. 

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
2022-05-09 14:17:22 +00:00
Nick Mathewson
853270a871 Merge remote-tracking branch 'tor-gitlab/mr/574' 2022-05-04 10:34:03 -04:00
Pierre Bourdon
eb0749d649
sandbox: replace SCMP_CMP_NEG with masked equality checks
For some syscalls the kernel ABI uses 32 bit signed integers. Whether
these 32 bit integer values are sign extended or zero extended to the
native 64 bit register sizes is undefined and dependent on the {arch,
compiler, libc} being used. Instead of trying to detect which cases
zero-extend and which cases sign-extend, this commit uses a masked
equality check on the lower 32 bits of the value.
2022-05-04 07:19:40 +02:00
Pierre Bourdon
8fd13f7a7b
sandbox: filter {chown,chmod,rename} via their *at variant on Aarch64
The chown/chmod/rename syscalls have never existed on AArch64, and libc
implements the POSIX functions via the fchownat/fchmodat/renameat
syscalls instead.

Add new filter functions for fchownat/fchmodat/renameat, not made
architecture specific since the syscalls exists everywhere else too.
However, in order to limit seccomp filter space usage, we only insert
rules for one of {chown, chown32, fchownat} depending on the
architecture (resp. {chmod, fchmodat}, {rename, renameat}).
2022-04-30 13:13:45 +02:00
Pierre Bourdon
531275b0f3
sandbox: fix openat filtering on AArch64
New glibc versions not sign-extending 32 bit negative constants seems to
not be a thing on AArch64. I suspect that this might not be the only
architecture where the sign-extensions is happening, and the correct fix
might be instead to use a proper 32 bit comparison for the first openat
parameter. For now, band-aid fix this so the sandbox can work again on
AArch64.
2022-04-30 11:52:59 +02:00
Alex Xu (Hello71)
8f77db2842 test: Re-init pregenerated RSA keys for NSS only
Not revalidating keys on every fork speeds up make test from about 45 seconds
to 10 seconds with OpenSSL 1.1.1n and from 6 minutes to 10 seconds with OpenSSL
3.0.2.
2022-04-28 15:12:17 -04:00
David Goulet
fb4c80f7fb version: Bump version to 0.4.8.0-alpha-dev
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-04-27 11:15:25 -04:00
David Goulet
5345b43fb8 version: Bump to 0.4.7.7-dev
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-04-27 11:12:38 -04:00
Tor CI Release
929a90a24f version: Bump version to 0.4.7.7 2022-04-27 10:04:17 -04:00
Tor CI Release
06ed65bd85 fallbackdir: Update list generated on April 27, 2022 2022-04-27 09:41:38 -04:00
Tor CI Release
2270648baa Update geoip files to match ipfire location db, 2022/04/27. 2022-04-27 09:41:28 -04:00
Mike Perry
ed3399ab06 Bug 40598: Demote warn log about odd path lengths with congestion control. 2022-04-26 12:14:26 -04:00
Alex Xu (Hello71)
851f551dd7 geoip: make geoip_get_country_by_* STATIC
slightly simplifies code and reduces compiled size.
2022-04-23 02:48:32 -04:00
Alex Xu (Hello71)
15e95c3bda Use tor_event_free instead of event_del+tor_free
Using tor_free is wrong; event_free must be called for objects obtained from
event_new. Additionally, this slightly simplifies the code.

Also, add a static_assert to prevent further instances.
2022-04-20 00:14:25 -04:00
David Goulet
32356a6076 Merge branch 'maint-0.4.5' into maint-0.4.6 2022-04-14 09:37:46 -04:00
David Goulet
dc90226cc3 Merge branch 'tor-gitlab/mr/491' into maint-0.4.5 2022-04-14 09:37:43 -04:00
David Goulet
b33f69abb5 Merge branch 'maint-0.4.5' into maint-0.4.6 2022-04-14 09:34:49 -04:00
David Goulet
9ac479ce1c Merge branch 'tor-gitlab/mr/497' into maint-0.4.5 2022-04-14 09:34:46 -04:00
Tor CI Release
c885a18a2e version: Bump version to 0.4.7.6-rc-dev 2022-04-07 11:49:20 -04:00
Tor CI Release
f18afc0b83 version: Bump version to 0.4.7.6-rc 2022-04-07 09:05:42 -04:00
Tor CI Release
133c64075b fallbackdir: Update list generated on April 07, 2022 2022-04-07 09:00:46 -04:00
Tor CI Release
28193dbf9d Update geoip files to match ipfire location db, 2022/04/07. 2022-04-07 09:00:42 -04:00
Roger Dingledine
5e6ed1065b document running_long_enough_to_decide_unreachable()
It came as a surprise that Serge, the bridge authority, omits the Running
flag for all bridges in its first 30 minutes after a restart:
https://bugs.torproject.org/tpo/anti-censorship/rdsys/102

The fix we're doing for now is to accept it as correct behavior in
Tor, and change all the supporting tools to be able to handle bridge
networkstatus docs that have no Running bridges.

I'm documenting it here inside Tor too so the next person might not
be so surprised.
2022-03-31 02:46:11 -04:00
David Goulet
b4890e7534 test: Unit tests for overload onionskin ntor
Part of #40560

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-29 10:32:29 -04:00
David Goulet
7ce3edaee0 rephist: Introduce a fraction and period for overload onionskin
This code was heavily reused from the previous DNS timeout work done in
ticket #40491 that was removed afterall from our code.

Closes #40560

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-29 10:30:28 -04:00
David Goulet
62fb184979 Merge branch 'maint-0.4.6' 2022-03-28 09:45:16 -04:00
David Goulet
d14af825ce Merge branch 'maint-0.4.5' into maint-0.4.6 2022-03-28 09:45:16 -04:00
David Goulet
b882b8d5d4 Merge branch 'tor-gitlab/mr/556' into maint-0.4.5 2022-03-28 09:44:31 -04:00
Nick Mathewson
de3872656a Sandbox: Permit the clone3 system call
Apparently glibc-2.34 uses clone3, when previously it just used
clone.

Closes ticket #40590.
2022-03-27 18:34:25 -04:00
Tor CI Release
84fc754204 version: Bump version to 0.4.7.5-alpha-dev 2022-03-25 10:17:02 -04:00
Tor CI Release
d376585751 version: Bump version to 0.4.7.5-alpha 2022-03-25 09:19:35 -04:00
Tor CI Release
9e5676031d fallbackdir: Update list generated on March 25, 2022 2022-03-25 09:11:19 -04:00
Tor CI Release
aaac633eb0 Update geoip files to match ipfire location db, 2022/03/25. 2022-03-25 09:10:16 -04:00
David Goulet
649539e82a Merge branch 'tor-gitlab/mr/550' 2022-03-16 14:47:21 -04:00
David Goulet
1a5b612832 Merge branch 'tor-gitlab/mr/548' 2022-03-16 14:03:31 -04:00
David Goulet
32400b5688 hs: Helper function to setup congestion control
We had 3 callsites setting up the circuit congestion control and so this
commit consolidates all 3 calls into 1 function.

Related to #40586

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-16 14:03:27 -04:00
David Goulet
dd63e8cf9d hs: Transfer ccontrol from circuit to cpath
Once the cpath is finalized, e2e encryption setup, transfer the ccontrol
from the rendezvous circuit to the cpath.

This allows the congestion control subsystem to properly function for
both upload and download side of onion services.

Closes #40586

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-16 14:03:27 -04:00
David Goulet
1f783bab40 dns: Remove reachable BUG()
Fixes #40587

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-16 13:42:42 -04:00
David Goulet
f64a88e72d Merge branch 'tor-gitlab/mr/490' 2022-03-16 13:35:33 -04:00
David Goulet
7ce17c2b00 relay: Reconfigure libevent options only on DNS params change
Related #40312

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-15 15:33:44 -04:00
David Goulet
2cdb5ceb1d relay: On new consensus, reconfigure DNS nameservers
This applies only for relays. Previous commit adds two new consensus
parameters that dictate how libevent is configured with DNS resolution.
And so, with a new consensus, we now look at those values in case they
ever change.

Without this, Exit relay would have to HUP or restart to apply any new
Exit DNS consensus parameters.

Related to #40312

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-15 15:26:37 -04:00
David Goulet
347eaa32bf relay: Lower DNS Exit-side timeout
Introduces two new consensus parameter:

  exit_dns_timeout: Number of seconds before libevent should consider
  the DNS request a timeout.

  exit_dns_num_attempts: Number of attempts that libeven should retry a
  previously failing query before calling it a timeout.

Closes #40312

Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-03-15 15:26:19 -04:00
David Goulet
17a8b3c735 Merge branch 'tor-gitlab/mr/547' 2022-03-15 15:16:30 -04:00