Commit Graph
33840 Commits
Author SHA1 Message Date
teor 58746ad9ca Merge branch 'bug31859_041' into bug31859_master
Merge master's RUST_VERSION="nightly" into the macOS Rust job
from bug31859_041.

Drop master's RUST_VERSION="beta", because we only have two
Rust jobs now.
2019-10-02 00:20:38 +10:00
teor e5dda7f664 Merge branch 'bug31859_040' into bug31859_041
Merge TOR_TEST_RNG_SEED in maint-0.4.1 into the coverage line
from bug31859_040.
2019-10-01 23:50:24 +10:00
teor 07db4141ab Merge branch 'bug31859_035' into bug31859_040 2019-10-01 23:46:28 +10:00
Nick Mathewson 39640728c3 Add comments to try to prevent recurrence of #31495.
There is a bad design choice in two of our configuration types,
where the empty string encodes a value that is not the same as the
default value.  This design choice, plus an implementation mistake,
meant that config_dup() did not preserve the value of routerset_t,
and thereby caused bug #31495.

This comment-only patch documents the two types with the problem,
and suggests that implementors try to avoid it in the future.

Closes ticket 31907.
2019-10-01 09:45:12 -04:00
teor 632e707397 Travis: Keep the macOS Rust job, but don't wait for it to finish
Since Rust on macOS is slow, don't wait for the macOS Rust job to finish.
Instead, split rust into slow rust (macOS) and fast rust (Linux). And
allow the build to finish before slow rust finishes.

Also make sure that we have:
* a Rust build on each platform,
* a Rust build with each compiler, and
* a check on all our Rust builds.

Finally, sort builds: allow fail last, macOS first, slowest first.

Closes 31859 for 0.3.5.
2019-10-01 23:42:51 +10:00
George Kadianakis e8e42f4af9 Help users who try to use v2 client auth in v3 onions. 2019-10-01 13:41:21 +03:00
George Kadianakis 723288a32f Improve v3 client auth documentation in the man page. 2019-10-01 13:39:34 +03:00
teor 4482d6fde5 Travis: Split jobs, add essential jobs, remove redundant jobs
Part of 31859 for 0.3.5.
2019-10-01 17:32:09 +10:00
teor f368f5bc37 Merge branch 'bug31859_029' into bug31859_035
While merging:
* leave out some redundant jobs and build matrix entries
2019-10-01 17:31:55 +10:00
Nick Mathewson 6581f3e2fa Fix the documentation for GuardLifetime. 2019-09-30 14:54:52 -04:00
teor 1e0e23c1e4 Travis: Add a macOS chutney job, but don't wait for it to finish
Since Travis macOS has IPv6 support (and Travis Linux does not), chutney
will now run its IPv6 networks as part of Travis CI.

But since chutney is slow, don't wait for the macOS chutney to finish.
(Travis have fixed the duplicate notification bug in fast_finish. So we
can use fast_finish and allow_failure to finish early. Unfortunately,
allow_failure also means we ignore failures in macOS chutney.)

Also make sure that we have:
* a compile on each platform, with each compiler,
* a check on each platform, and
* a check on each compiler.

Finally, sort builds: allow fail last, macOS first, slowest first.

Closes ticket 30860.
Closes ticket 31859 for 0.2.9.
2019-09-30 23:58:38 +10:00
teor 4e4297830e Travis: Remove a redundant clang Linux job
Part of 31859.
2019-09-30 23:58:24 +10:00
teor 56d0655ed8 err: Remove a duplicate header in backtrace.c 2019-09-30 23:17:04 +10:00
teor c23986246b err: Always lock the backtrace buffer before it is used
Fixes bug 31734; bugfix on 0.2.5.3-alpha.
2019-09-30 23:17:04 +10:00
Nick Mathewson 53116ca0b7 Re-run "make autostyle" with improved annotate_ifdef_directives 2019-09-30 08:57:37 -04:00
teor db329522ef log: When initialising log domain masks, only set known log domains
And add a runtime test that checks for unknown domains and flags.

Fixes bug 31854; bugfix on 0.2.1.1-alpha.
2019-09-30 22:05:00 +10:00
teor 25c5322dfe log: Define count, boundary, and all macros for domains and flags
And do static checks on those macro definitions.

Part of 31854.
2019-09-30 22:04:03 +10:00
teor 4c88ebcf47 log: Remove duplicate code and an outdated comment
Preparation for 31854.
2019-09-30 22:03:59 +10:00
George Kadianakis de66bed604 Merge branch 'tor-github/pr/1366' 2019-09-30 14:01:01 +03:00
George Kadianakis 9318682109 Merge branch 'tor-github/pr/1346' 2019-09-30 13:56:51 +03:00
George Kadianakis ae8d36db31 Merge branch 'tor-github/pr/1302' 2019-09-30 13:47:53 +03:00
George Kadianakis fc760c5088 Merge branch 'tor-github/pr/1356' 2019-09-30 13:47:06 +03:00
George Kadianakis 4673cb8168 Merge branch 'tor-github/pr/1339' 2019-09-30 13:44:59 +03:00
teor b186418792 Appveyor: Avoid spurious errors in Appveyor CI builds
When Appveyor fails before the install step, some of the finish step's
functions were not defined.

Fixes bug 31884; bugfix on 0.3.4.2-alpha.
2019-09-30 15:14:21 +10:00
teor 2420c8c936 test: Avoid a map_anon_nofork test failure on SunOS
This test failure happened due to a signed/unsigned integer
comparison.

This bug occurred on SunOS, it may also occur on other systems that
use signed char as the default. (And cast 1-byte integer constants
to an unsigned integer.)

Fixes bug 31897; bugfix on 0.4.1.1-alpha.
2019-09-30 14:54:56 +10:00
Nick Mathewson fc1134e3e5 annotate_ifdef_directives: test edge-case of 80-char line
An 80-character line (79 characters if you don't count the newline)
should not be truncated, and should not have a "..." insterted.
2019-09-27 21:04:22 -04:00
Nick Mathewson 21c9f7c85e Annotate_ifdef_directives: doctest for 80-column lines. 2019-09-27 21:04:22 -04:00
Nick Mathewson f1e0665c93 Rename annotate_ifdef_directives to end with .py.
This allows the python doctest module to process it correctly
when invoked as:
   python -m doctest -v annotate_ifdef_directives.py
2019-09-27 21:04:22 -04:00
Nick Mathewson d229399e77 annotate_ifdef_directives: Allow it to be imported as a module. 2019-09-27 21:04:22 -04:00
Nick Mathewson 6f0e697e41 Use Doctests to test the behavior of annotate_ifdef_directives. 2019-09-27 21:04:22 -04:00
Nick Mathewson 195aa2f5f7 annotate_ifdef_directives: generate paren-balanced expressions
This algorithm is not fully general, but it strikes a balance
between efficiency, simplicity, and correctness.
2019-09-27 21:04:22 -04:00
Nick Mathewson 21cc9d13f3 annotate_ifdef_directives: clarify situation with newlines
Our line limit is 80 characters, assuming that there is a single
terminating newline character that counts towards the limit.  On
Windows, this might go as high as 81 characters, if we count CRLF as
two characters.
2019-09-26 15:52:45 -04:00
Nick Mathewson 194dbea24d Run "make autostyle" with new "annotate_ifdef_directives" 2019-09-26 15:52:45 -04:00
Nick Mathewson 3283fd7e79 Changes file for 31759 and 31779 2019-09-26 15:52:45 -04:00
Nick Mathewson 65e63e7461 annotate_ifdef_directives: remove some cases of double negation
This change should reduce the number of cases where we say
"/* !(!defined(foo)) */" .

This only does cases where we can use a regex to make sure that the
simplification is guaranteed to be correct.  Full boolean
simplification would require this script to parse C, and nobody
wants that.
2019-09-26 15:52:45 -04:00
Nick Mathewson ffd857bbe1 Merge remote-tracking branch 'tor-github/pr/1308' 2019-09-26 14:36:37 -04:00
teor 8520071f23 Travis: Unroll the build matrix into matrix: include:
The jobs should be the same, but Travis may display them differently.

Part of 31859.
2019-09-26 18:06:09 +10:00
teor d1eab05834 lock: Avoid some undefined behaviour when freeing mutexes.
Fixes bug 31736; bugfix on 0.0.7.
2019-09-26 12:37:25 +10:00
teor 749c2e1761 log: explain why it is safe to leave the log mutex initialized
The log mutex is dynamically initialized, guarded by log_mutex_initialized.
We don't want to destroy it, because after it is destroyed, we won't see
any more logs.

If tor is re-initialized, log_mutex_initialized will still be 1. So we
won't trigger any undefined behaviour by trying to re-initialize the
log mutex.

Part of 31736, but committed in this branch to avoid merge conflicts.
2019-09-26 12:22:34 +10:00
teor 2f8a9a2db6 sandbox: Allow backtrace signals to be disabled
Part of 31614.
2019-09-26 12:22:30 +10:00
teor c9c046c365 changes: file for 31614 2019-09-26 12:22:21 +10:00
teor 315f14c709 backtrace: avoid undefined behaviour on re-initialisation
cb_buf_mutex is statically initialised, so we can not destroy it when
we are shutting down the err subsystem. If we destroy it, and then
re-initialise tor, all our backtraces will fail.

Part of 31736, but committed in this branch to avoid merge conflicts.
2019-09-26 12:07:25 +10:00
Nick Mathewson 40a22fb707 Merge remote-tracking branch 'tor-github/pr/1349' 2019-09-25 13:07:19 -04:00
George Kadianakis 7157d80c6f Merge branch 'tor-github/pr/1337' 2019-09-25 14:19:49 +03:00
George Kadianakis 01a797be4e Merge branch 'tor-github/pr/1334' 2019-09-25 14:19:02 +03:00
George Kadianakis 0a77e5f1c2 Merge branch 'tor-github/pr/1341' 2019-09-25 14:18:15 +03:00
George Kadianakis 09769779a0 Merge branch 'tor-github/pr/1357' 2019-09-25 14:17:35 +03:00
George Kadianakis 6677eae579 Merge branch 'tor-github/pr/1355' 2019-09-25 14:17:03 +03:00
George Kadianakis 6712fb9e27 Merge branch 'tor-github/pr/1353' 2019-09-25 14:16:28 +03:00
George Kadianakis 2199629648 Merge branch 'tor-github/pr/1345' 2019-09-25 14:14:30 +03:00