Commit Graph

37787 Commits

Author SHA1 Message Date
Simon South
001d880d10 sandbox: Allow "statx" syscall on i386 for glibc 2.33
glibc versions 2.33 and newer use the modern "statx" system call in their
implementations of stat() and opendir() for Linux on i386.  Prevent failures in
the sandbox unit tests by modifying the sandbox to allow this system call
without restriction on i386 when it is available, and update the test suite to
skip the "sandbox/stat_filename" test in this case as it is certain to fail.
2021-11-05 10:30:51 -04:00
Simon South
d59f63f1c4 test: Skip sandbox/stat_filename where "stat64" syscall defined
On 32-bit architectures where Linux provides the "stat64" system call,
including i386, the sandbox is unable to filter calls to stat() as glibc uses
this system call itself internally and the sandbox must allow it without
restriction.

Update the sandbox unit tests to skip the "sandbox/stat_filename" test on
systems where the "stat64" system call is defined and the test is certain to
fail.  Also reorder the "#if" statement's clauses to correspond with the
comment preceding it, for clarity.
2021-11-05 10:30:51 -04:00
Simon South
f5980e60ed sandbox: Allow "clock_gettime64" syscall where defined
On 32-bit architectures where Linux provides the "clock_gettime64" system call,
including i386, glibc uses it in place of "clock_gettime".  Modify the sandbox
implementation to match, to prevent Tor's monotonic-time functions (in
src/lib/time/compat_time.c) failing when the sandbox is active.
2021-11-05 10:30:51 -04:00
Simon South
55571fc8d7 sandbox: Filter "chown32" syscall on i386
On i386 glibc uses the "chown32" system call instead of "chown".  Prevent
attempts to filter calls to chown() on this architecture from failing by
modifying the sandbox implementation to match.
2021-11-05 10:30:51 -04:00
David Goulet
f93cd5deb8 protover: Add a note on why LinkAuth is not recommended or required
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-05 10:16:08 -04:00
David Goulet
3d1a49908c protover: Move all hardcoded lists in one place
This also moves the warnings and add some theatrical effect around the
code so anyone modifying those list should notice the warnings signs and
read the comment accordingly.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-05 10:13:47 -04:00
Nick Mathewson
7c085490f5 Add scary warnings about changing the protover list.
Doing this in the wrong way has potential to cause serious havoc on
the network, so let's make it harder for future programmers to mess
it up.
2021-11-05 09:20:05 -04:00
Alexander Færøy
fb6bba1e42 Merge branch 'maint-0.4.5' into maint-0.4.6 2021-11-05 03:10:29 +00:00
Alexander Færøy
c363e2017f Merge branch 'maint-0.4.6' into main 2021-11-05 03:10:29 +00:00
Alexander Færøy
40e2106031 Merge branch 'maint-0.3.5' into maint-0.4.5 2021-11-05 03:10:28 +00:00
Alexander Færøy
cfd1482f78 Merge remote-tracking branch 'ahf/ahf/ci-i386' into maint-0.3.5 2021-11-05 03:10:12 +00:00
David Goulet
89ba63a619 Merge branch 'maint-0.4.6' 2021-11-03 09:54:14 -04:00
David Goulet
33fb0f1d8f shellcheck: Remove unused variable in ci-driver.sh
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-03 09:54:09 -04:00
David Goulet
36e6ad6c7b Merge branch 'maint-0.4.6' 2021-11-03 09:53:35 -04:00
David Goulet
83f8fe05e8 Merge branch 'maint-0.4.5' into maint-0.4.6
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-03 09:53:31 -04:00
David Goulet
ea5eebf431 Merge branch 'tor-gitlab/mr/477' into maint-0.4.5 2021-11-03 09:52:03 -04:00
David Goulet
6e8e1a4e6f relay: Don't allow DirPort on non-IPv4
Our code doesn't allow it and so this prevents an assert() crash if the
DirPort is for instance IPv6 only.

Fixes #40494

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-03 09:51:46 -04:00
David Goulet
44671995d1 shellcheck: Remove unused variable in ci-driver.sh
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-03 09:50:43 -04:00
David Goulet
755485342c Merge branch 'maint-0.4.6'
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-03 09:49:07 -04:00
David Goulet
621f8ac418 Merge branch 'maint-0.4.5' into maint-0.4.6 2021-11-03 09:47:43 -04:00
David Goulet
1e3e921d7d Merge branch 'maint-0.3.5' into maint-0.4.5 2021-11-03 09:47:43 -04:00
David Goulet
1902edaf52 shellcheck: Make it happy on couple scripts
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-03 09:47:30 -04:00
Alexander Færøy
d83c6bf80f Add i386 version of debian-minimal for 32-bit Gitlab CI builds.
See: tpo/core/tor#40505
2021-11-03 12:36:30 +00:00
David Goulet
c9e2ee076c doc: Brand new ReleasingTor.md
Closes #40508

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-02 11:56:53 -04:00
Alexander Færøy
f6600377b4 Merge remote-tracking branch 'tor-gitlab/mr/474' into main 2021-11-02 15:28:56 +00:00
Alexander Færøy
b109161c8f Merge branch 'maint-0.4.6' into main 2021-11-02 15:27:08 +00:00
Alexander Færøy
9922116388 Add missing ponctuation. 2021-11-02 15:26:09 +00:00
David Goulet
6926c9192a man: Missing OverloadStatistics option in tor.1
Closes #40504

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-02 09:51:43 -04:00
David Goulet
6cb349e989 readme: CI Pipeline status icon at the top
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-11-01 15:29:59 -04:00
Alexander Færøy
ee38ec02f3 Use TOR_PRIuSZ instead of %ld for CC logging.
This patch fixes the current build of main on Windows.
2021-10-29 19:08:20 +00:00
Alexander Færøy
77f5bfa60e Merge branch 'maint-0.3.5' into maint-0.4.5 2021-10-29 16:56:33 +00:00
Alexander Færøy
57f296b396 Merge branch 'maint-0.4.5' into maint-0.4.6 2021-10-29 16:56:33 +00:00
Alexander Færøy
558037f6ed Merge branch 'maint-0.4.6' into main 2021-10-29 16:56:33 +00:00
Alexander Færøy
5c8deef9b6 Fix Windows build.
While trying to resolve our CI issues, the Windows build broke with an
unused function error:

   src/test/test_switch_id.c:37:1: error: ‘unprivileged_port_range_start’
   defined but not used [-Werror=unused-function]

We solve this by moving the `#if !defined(_WIN32)` test above the
`unprivileged_port_range_start()` function defintion such that it is
included in its body.

This is an unreviewed commit.

See: tor#40275
2021-10-29 16:52:18 +00:00
David Goulet
294e8a8879 Merge branch 'maint-0.4.6' 2021-10-29 09:20:44 -04:00
David Goulet
3ebf217009 Merge branch 'maint-0.3.5' into maint-0.4.5 2021-10-29 09:20:21 -04:00
David Goulet
77c47417f2 Merge branch 'maint-0.4.5' into maint-0.4.6 2021-10-29 09:20:21 -04:00
David Goulet
bec9c61f5b changes: Add file for ticket 26299
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-29 09:20:17 -04:00
David Goulet
f5bd575401 changes: Add file for ticket 26299
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-29 09:19:59 -04:00
David Goulet
92fedb9f44 changes: Add file for ticket 26299
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-29 09:19:21 -04:00
Roger Dingledine
7084ec8710 don't retry entry guards if they're bridges without descriptors
When we don't yet have a descriptor for one of our bridges, disable
the entry guard retry schedule on that bridge. The entry guard retry
schedule and the bridge descriptor retry schedule can conflict,
e.g. where we mark a bridge as "maybe up" yet we don't try to fetch
its descriptor yet, leading Tor to wait (refusing to do anything)
until it becomes time to fetch the descriptor.

Fixes bug 40497; bugfix on 0.3.0.3-alpha.
2021-10-28 20:57:28 -04:00
Roger Dingledine
f9cb7e3398 do notice-level log when we resume having enough dir info
we do a notice-level log when we decide we *don't* have enough dir
info, but in 0.3.5.1-alpha (see commit eee62e13d9, #14950) we lost our
corresponding notice-level log when things come back.

bugfix on 0.3.5.1-alpha; fixes bug 40496.
2021-10-28 20:57:28 -04:00
Roger Dingledine
db34f6c9e8 handle other de-sync cases from #40396
Specifically, every time a guard moves into or out of state
GUARD_REACHABLE_MAYBE, it is an opportunity for the guard reachability
state to get out of sync with the have-minimum-dir-info state.

Fixes even more of #40396.
2021-10-28 20:57:28 -04:00
Roger Dingledine
3c8510e2c0 reassess minimum-dir-info when a bridge fails
When we try to fetch a bridge descriptor and we fail, we mark
the guard as failed, but we never scheduled a re-compute for
router_have_minimum_dir_info().

So if we had already decided we needed to wait for this new descriptor,
we would just wait forever -- even if, counterintuitively, *losing* the
bridge is just what we need to *resume* using the network, if we had it
in state GUARD_REACHABLE_MAYBE and we were stalling to learn this outcome.

See bug 40396 for more details.
2021-10-28 20:57:28 -04:00
Roger Dingledine
867c3c6f89 only log "new bridge descriptor" if really new
The bridge descriptor fetching codes ends up fetching a lot of duplicate
bridge descriptors, because this is how we learn when the descriptor
changes.

This commit only changes comments plus whether we log that one line.

It moves us back to the old behavior, before the previous commit for
30496, where we would only log that line when the bridge descriptor
we're talking about is better than the one we already had (if any).
2021-10-28 20:57:28 -04:00
David Goulet
fbc6d2d76a makefile: Add a reproducible dist make job
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-28 16:29:45 -04:00
David Goulet
8da8105ee2 makefile: Add a reproducible dist make job
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-28 16:29:37 -04:00
David Goulet
8cf6f9183c makefile: Add a reproducible dist make job
Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-28 16:29:22 -04:00
Alexander Færøy
c845f2e4b2 release: Patches to make tarball reproducible
Closes #26299

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-28 14:45:31 -04:00
Alexander Færøy
11fedab9ce release: Patches to make tarball reproducible
Closes #26299

Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-10-28 14:31:52 -04:00