Commit Graph

24374 Commits

Author SHA1 Message Date
Nick Mathewson d41f1cd3ed btrack_orconn_cevent.c: Add a missing "break;" 2020-05-06 17:07:12 -04:00
Nick Mathewson 79ff2b6aab Use __attribute__((fallthrough)) rather than magic GCC comments.
GCC added an implicit-fallthrough warning a while back, where it
would complain if you had a nontrivial "case:" block that didn't end
with break, return, or something like that.  Clang recently added
the same thing.

GCC, however, would let you annotate a fall-through as intended by
any of various magic "/* fall through */" comments.  Clang, however,
only seems to like "__attribute__((fallthrough))".  Fortunately, GCC
accepts that too.

A previous commit in this branch defined a FALLTHROUGH macro to do
the right thing if GNUC is defined; here we replace all of our "fall
through" comments with uses of that macro.

This is an automated commit, made with the following perl one-liner:

  #!/usr/bin/perl -i -p
  s#/\* *falls? ?thr.*?\*/#FALLTHROUGH;#i;

(In order to avoid conflicts, I'm applying this script separately to
each maint branch. This is the 0.4.1 version.)
2020-05-06 16:52:03 -04:00
Nick Mathewson 3e42464f5a Merge branch 'bug34078_prelim_035' into bug34078_prelim_041 2020-05-06 15:18:36 -04:00
Nick Mathewson 3d3641152b Remove an incorrect "Fall through" comment. 2020-05-06 15:08:02 -04:00
Nick Mathewson 8798c0a94a address.c: add a single (harmless) missing break; 2020-05-06 15:08:02 -04:00
Nick Mathewson 37b8324ed3 include compat_compiler for ed25519_donna 2020-05-06 15:08:02 -04:00
Nick Mathewson 9fe23b8672 Replace some "fall through" comments not at the end of a case. 2020-05-06 15:08:02 -04:00
Nick Mathewson 75547c01a3 Replace a "fall through" comment that was outside a switch. 2020-05-06 15:08:02 -04:00
Nick Mathewson 6c3c94357c Add a fallthrough macro.
This macro defers to __attribute__((fallthrough)) on GCC (and
clang).  Previously we had been using GCC's magic /* fallthrough */
comments, but clang very sensibly doesn't accept those.

Since not all compiler recognize it, we only define it when our
configure script detects that it works.

Part of a fix for 34078.
2020-05-06 15:08:02 -04:00
Nick Mathewson d7e166bd95 Fix a GCC 10.0.1 compilation warning.
Fixes 34077 for 0.4.1; bugfix on 0.4.0.3-alpha. (Specifically, GCC
first gives this warning for 9eeff921ae)
2020-04-30 22:56:31 -04:00
teor 987f2fa50a Merge branch 'maint-0.3.5' into maint-0.4.1 2020-04-09 11:03:20 +10:00
teor d380acaeca Merge remote-tracking branch 'tor-github/pr/1784' into maint-0.3.5 2020-04-09 11:02:49 +10:00
Nick Mathewson 42ea03eb7f Merge branch 'ticket33643_skip_035' into ticket33643_skip_041 2020-03-19 18:38:18 -04:00
Nick Mathewson 6bafe97bc1 Add a TOR_SKIP_TESTCASES environment variable for suppressing tests.
For example, "TOR_SKIP_TESTCASES=crypto/.. ./src/test/test" will run
the tests and suppress all the "crypto/" tests.  You could get the
same effect by running "./src/test/test :crypto/..", but that can be
harder to arrange from CI.

Part of a fix/workaround for 33643.
2020-03-19 18:36:36 -04:00
Nick Mathewson efdbf42432 Bump version to 0.4.1.9-dev 2020-03-18 12:15:53 -04:00
Nick Mathewson 3150c30351 Bump version to 0.3.5.10-dev 2020-03-18 12:15:32 -04:00
Nick Mathewson 4ad3f17c26 Merge branch 'maint-0.3.5' into maint-0.4.1 2020-03-18 08:20:16 -04:00
Nick Mathewson 0526801ed4 Port rsa_private_key_too_long() to work on OpenSSL 1.1.0. 2020-03-18 08:19:48 -04:00
Nick Mathewson 3c8a4b8fbd Merge branch 'trove_2020_002_041' into maint-0.4.1 2020-03-17 15:22:02 -04:00
Nick Mathewson fe3d8ec38e Merge branch 'trove_2020_002_035' into maint-0.3.5 2020-03-17 15:21:48 -04:00
Nick Mathewson cec647ff3e Merge branch 'trove_2020_004_041_v2' into maint-0.4.1 2020-03-17 13:56:03 -04:00
Nick Mathewson 5f4e14b8c8 Merge branch 'maint-0.3.5' into maint-0.4.1 2020-03-17 11:45:16 -04:00
George Kadianakis 089e57d22f Fix TROVE-2020-003.
Given that ed25519 public key validity checks are usually not needed
and (so far) they are only necessary for onion addesses in the Tor
protocol, we decided to fix this specific bug instance without
modifying the rest of the codebase (see below for other fix
approaches).

In our minimal fix we check that the pubkey in
hs_service_add_ephemeral() is valid and error out otherwise.
2020-03-17 11:44:45 -04:00
George Kadianakis c940b7cf13 Trivial bugfixes found during TROVE investigation. 2020-03-17 11:43:03 -04:00
Nick Mathewson 9163781039 Merge branch 'trove_2020_002_035' into trove_2020_002_041 2020-03-17 10:45:03 -04:00
Nick Mathewson f958b537ab Use >= consistently with max_bits. 2020-03-17 10:44:38 -04:00
Nick Mathewson 2328c79a5f Add off-by-one checks for key length. 2020-03-17 10:44:38 -04:00
Nick Mathewson 8abdb39489 Extract key length check into a new function, and check more fields.
In the openssl that I have, it should be safe to only check the size
of n.  But if I'm wrong, or if other openssls work differently, we
should check whether any of the fields are too large.

Issue spotted by Teor.
2020-03-17 10:44:38 -04:00
Nick Mathewson 78bcfc1280 circpad_setup_machine_on_circ(): exit early on error.
This function does a nonfatal assertion to make sure that a machine
is not registered twice, but Tobias Pulls found a case where it
happens.  Instead, make the function exit early so that it doesn't
cause a remotely triggered memory leak.

Fixes bug 33619; bugfix on 0.4.0.1-alpha.  This is also tracked as
TROVE-2020-004.
2020-03-16 17:59:57 -04:00
Nick Mathewson dd6e2277e0 Merge branch 'trove_2020_002_035' into trove_2020_002_041 2020-03-14 14:20:51 -04:00
Nick Mathewson 29c9675bde Fix memory leak in crypto_pk_asn1_decode_private.
(Deep, deep thanks to Taylor for reminding me to test this!)
2020-03-14 14:17:37 -04:00
Nick Mathewson ab2e66ccdc Add a test for crypto_pk_asn1_decode_private maxbits. 2020-03-14 14:17:13 -04:00
Nick Mathewson be064f77b9 Revise TROVE-2020-002 fix to work on older OpenSSL versions.
Although OpenSSL before 1.1.1 is no longer supported, it's possible
that somebody is still using it with 0.3.5, so we probably shouldn't
break it with this fix.
2020-03-14 13:38:53 -04:00
Nick Mathewson d17108a187 Bump to 0.3.5.10 2020-03-13 16:56:31 -04:00
Nick Mathewson 7f0ad3343e Bump to 0.4.1.9 2020-03-13 16:56:22 -04:00
Nick Mathewson b2e543bfe7 Merge branch 'maint-0.3.5' into maint-0.4.1 2020-03-13 16:46:16 -04:00
Nick Mathewson b9d71f3848 Merge remote-tracking branch 'tor-github/pr/1693/head' into maint-0.3.5 2020-03-13 16:46:09 -04:00
David Goulet 894ff2dc84 dos: Pass transport name on new client connection
For a bridge configured with a pluggable transport, the transport name is
used, with the IP address, for the GeoIP client cache entry.

However, the DoS subsystem was not aware of it and always passing NULL when
doing a lookup into the GeoIP cache.

This resulted in bridges with a PT are never able to apply DoS defenses for
newly created connections.

Fixes #33491

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-03-10 14:45:13 -04:00
teor 5298113da9 Merge branch 'maint-0.3.5' into maint-0.4.1 2020-02-12 12:21:57 +10:00
Alexander Færøy b9c7c61ea5 Lowercase the BridgeDistribution value from torrc in descriptors.
This patch ensures that we always lowercase the BridgeDistribution from
torrc in descriptors before submitting it.

See: https://bugs.torproject.org/32753
2020-02-12 12:21:41 +10:00
Nick Mathewson 71c49f7356 Merge branch 'maint-0.4.0' into maint-0.4.1 2020-02-10 14:17:10 -05:00
Nick Mathewson f3fa22bf1b Merge branch 'maint-0.3.5' into maint-0.4.0 2020-02-10 14:17:09 -05:00
Nick Mathewson 99d044d553 Fix a Rust compilation warning; resolve bug 33212. 2020-02-10 13:32:09 -05:00
Nick Mathewson 1a375c3b19 Merge branch 'trove_2020_002_035' into trove_2020_002_041
Resolved Conflicts:
	src/feature/dirparse/parsecommon.c
2020-02-05 12:06:24 -05:00
Nick Mathewson f160212ee8 When parsing tokens, reject early on spurious keys. 2020-02-05 11:57:31 -05:00
Nick Mathewson 9e1085c924 When parsing, reject >1024-bit RSA private keys sooner.
Private-key validation is fairly expensive for long keys in openssl,
so we need to avoid it sooner.
2020-02-05 11:11:35 -05:00
Nick Mathewson 7afb95d3e3 Bump to 0.4.1.8-dev 2020-01-30 11:18:50 -05:00
Nick Mathewson ec7f99e6ef bump to 0.4.1.8 2020-01-29 19:42:24 -05:00
teor 6b392c333a Merge branch 'maint-0.4.0' into maint-0.4.1 2020-01-30 07:55:05 +10:00
teor 65825018c7 Merge branch 'maint-0.3.5' into maint-0.4.0 2020-01-30 07:54:58 +10:00