Commit Graph

9008 Commits

Author SHA1 Message Date
teor
1bde356bf6
Merge branch 'maint-0.2.9' into maint-0.3.5 2019-11-06 11:19:30 +10:00
teor
4f9a003392
Merge remote-tracking branch 'tor-github/pr/1374' into maint-0.4.1 2019-11-06 11:19:13 +10:00
teor
4abfcb7997
Merge remote-tracking branch 'tor-github/pr/1354' into maint-0.3.5 2019-11-06 11:18:09 +10:00
teor
0e2834a371
Merge remote-tracking branch 'tor-github/pr/1348' into maint-0.3.5 2019-11-06 11:17:43 +10:00
teor
d2e4262ebc
Merge remote-tracking branch 'tor-github/pr/1340' into maint-0.3.5 2019-11-06 11:17:01 +10:00
teor
6bfdd09679
Merge remote-tracking branch 'tor-github/pr/1343' into maint-0.3.5 2019-11-06 11:16:09 +10:00
teor
0650bf3695
Merge remote-tracking branch 'tor-github/pr/1342' into maint-0.2.9 2019-11-06 11:15:45 +10:00
teor
c06d540ff9
Merge remote-tracking branch 'tor-github/pr/1330' into maint-0.2.9 2019-11-06 11:14:53 +10:00
Nick Mathewson
d3e547b2bd Re-think our doxygen warnings wrt missing docs and fatalness.
Up till now, we have warned about all missing documentation, which
meant that we could never make doxygen warnings fatal.  This has led
to our doxygen output getting full of errors several times in the
past.

This commit changes our approach to doxygen warnings: missing
documentation warnings are only on when the user asks for them with
--enable-missing-doc-warnings.  When that option is not present,
doxygen respects the --enable-fatal-warnings flag.

Closes ticket 32385.
2019-11-05 12:24:02 -05:00
teor
804d7c9bfc
configure: Remove a check that will always fail
And update the changes file to be more specific.

Part of 32191.
2019-11-05 15:48:01 +10:00
Hans-Christoph Steiner
2a349006b9
force pkg-config to only use --prefix when cross-compiling
The current pkg-config setup has no sense of whether it is cross-compiling,
so it will detect things on the build system that are not present or are
wrong for the host system.  This forces the cross-compiling build to only
look for pkg-config .pc files in --prefix.

A version of this has been the setup for many years with the Android builds.

Fixes #32191

Signed-off-by: Hans-Christoph Steiner <hans@eds.org>
2019-11-05 15:45:25 +10:00
teor
655603c779
Merge remote-tracking branch 'tor-github/pr/1487'
Combine V_IMMUTABLE and FILENAME changes on PidFile.
2019-11-05 14:26:23 +10:00
teor
b9269d6d0a
Merge remote-tracking branch 'tor-github/pr/1486' 2019-11-05 14:23:56 +10:00
teor
6169469546
Merge remote-tracking branch 'tor-github/pr/1477' 2019-11-05 14:23:10 +10:00
teor
81972353cb scripts: Fix update_versions.py for out-of-tree builds
Fixes bug 32371; bugfix on 0.4.0.1-alpha.
2019-11-05 12:00:59 +10:00
teor
9e2a2d38f4 Makefile: Fix "make autostyle" for out-of-tree builds
Fixes bug 32370; bugfix on 0.4.1.2-alpha.
2019-11-05 12:00:57 +10:00
teor
96334d6f7f changes: file for 32213 2019-11-05 11:26:26 +10:00
teor
233b96d83a test/parseconf: Always show the result file name on failure
Obviously correct fixes on already reviewed code.
2019-11-05 11:12:50 +10:00
teor
5b04db59f6 test/scripts: Use the same code to find the tor binary
This change makes sure we are always using the coverage binary, when
coverage is enabled.

Fixes bug 32368; bugfix on 0.2.7.3-rc.
2019-11-05 11:07:31 +10:00
teor
f29de4b8d2 confmgt: Stop adding a space, when there is no option value
Fixes bug 32352; bugfix on 0.0.9pre6.
2019-11-05 11:01:28 +10:00
Nick Mathewson
096cbfb8b0 Merge remote-tracking branch 'tor-github/pr/1480' 2019-11-01 09:35:17 -04:00
George Kadianakis
fa0257eda0 Merge branch 'tor-github/pr/1484' 2019-10-31 15:31:14 +08:00
teor
384fe64786
changes: file for 32347 2019-10-31 14:59:23 +10:00
Nick Mathewson
14831ea0ab Use FILENAME to determine which options to check for relative paths
This is part of ticket 32344.
2019-10-30 15:32:12 -04:00
Nick Mathewson
b985cf2403 Use CFLG_IMMUTABLE to replace much of the options transition cb.
Closes ticket 32344.
2019-10-30 15:05:26 -04:00
David Goulet
f579541f13 Merge branch 'tor-github/pr/1468' 2019-10-30 08:53:51 -04:00
Neel Chauhan
f81e4aa831 hs-v2: Lookup intro failure cache when picking an intro from descriptor
When picking an intro point from the service descriptor, the client failed to
lookup the failure cache.

It made an HS v2 client re-pick bad intro points for which we already know it
won't work in the first place.

Based on Neel Chauhan original patch.

Fixes #25568

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-30 08:47:21 -04:00
Taylor Yu
1e8ddbe1ee Changes file for ticket 32277 2019-10-29 16:39:03 -05:00
George Kadianakis
4413b98190 Merge branch 'tor-github/pr/1456' 2019-10-29 21:29:13 +08:00
teor
b448f6044d
Merge branch 'maint-0.4.2' 2019-10-29 08:27:02 +10:00
teor
2395800d3e
Merge branch 'maint-0.4.1' into maint-0.4.2 2019-10-29 08:26:55 +10:00
teor
63aff4a43e
Merge branch 'maint-0.4.0' into maint-0.4.1 2019-10-29 08:26:48 +10:00
teor
54e2d0dc2d
Merge branch 'maint-0.3.5' into maint-0.4.0 2019-10-29 08:26:40 +10:00
teor
15d67842f9
Merge branch 'maint-0.2.9' into maint-0.3.5 2019-10-29 08:26:32 +10:00
teor
752c35ca96
Merge remote-tracking branch 'tor-github/pr/1460' into maint-0.2.9 2019-10-29 08:23:35 +10:00
David Goulet
d67db64ced changes: Add file for ticket 32196
Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-28 13:21:08 -04:00
David Goulet
b98631d280 Merge branch 'tor-github/pr/1476' 2019-10-28 08:47:57 -04:00
José M. Guisado
42ba3997d6 Check memunit parsing for overflow in confparse
Before, when parsing memunits, if overflow occured it failed silently.
Use nowrap u64 math to detect overflow, compare to INT64_MAX and if
greater tell user and fail accordingly.

15000000.5 TB fails double check as it a greater floating number than
(double)INT64_MAX

8388608.1 TB passes double check because it falls in the same value as
(double)INT64_MAX (which is 2^63), but will fail the int check because
(uint64_t)d, which is 2^63, is strictly greater than 2^63-1 (INT64_MAX).

Fixes #30920
Signed-off-by: José M. Guisado <guigom@riseup.net>
2019-10-28 11:38:41 +01:00
JeremyRand
2734968e40
Bug 19859: Add stream isolation data to STREAM event 2019-10-27 01:32:21 +00:00
Nick Mathewson
bc4b9d7df4 Changes file for ticket 32307. 2019-10-26 12:09:09 -04:00
Nick Mathewson
731464deb5 changes file for 32304 2019-10-26 10:14:05 -04:00
Nick Mathewson
e7993dc046 Merge branch 'ticket31241_v3' 2019-10-25 08:10:39 -04:00
teor
f40eb2ead6
Merge remote-tracking branch 'tor-github/pr/1462' 2019-10-25 16:14:37 +10:00
teor
9be0324c2c
changes: file for 31919 2019-10-25 16:08:44 +10:00
teor
aff286618c
Merge branch 'maint-0.4.2' 2019-10-25 10:56:21 +10:00
teor
d7c40beeab
Merge branch 'maint-0.4.1' into maint-0.4.2 2019-10-25 10:56:13 +10:00
teor
63581d55a6
Merge branch 'maint-0.4.0' into maint-0.4.1 2019-10-25 10:56:06 +10:00
teor
e56e7e865e
Merge branch 'maint-0.3.5' into maint-0.4.0 2019-10-25 10:55:58 +10:00
teor
e03db9934a
Merge branch 'maint-0.2.9' into maint-0.3.5 2019-10-25 10:55:51 +10:00
teor
a91f52a443
Merge branch 'maint-0.4.2' 2019-10-25 10:38:22 +10:00
Nick Mathewson
94853b4ab6 changes tile for ticket 31241 2019-10-24 20:38:02 -04:00
teor
c8aa3cc17d
Merge remote-tracking branch 'tor-github/pr/1466' into maint-0.4.2 2019-10-25 10:38:01 +10:00
teor
b3d035d5c4
Merge remote-tracking branch 'tor-github/pr/1463' 2019-10-25 10:27:41 +10:00
teor
93be7275ec
changes: file for 31919's bionic Travis image change 2019-10-25 09:53:11 +10:00
teor
c00602cc34
Merge branch 'maint-0.4.2' 2019-10-25 09:42:14 +10:00
teor
acd27f4b41
Merge remote-tracking branch 'tor-github/pr/1464' into maint-0.4.2 2019-10-25 09:41:48 +10:00
Nick Mathewson
fefee871a6 Merge remote-tracking branch 'tor-github/pr/1437' 2019-10-24 11:44:19 -04:00
David Goulet
09468cc58b dir: Look if circuit is closed in connection_dir_is_anonymous()
Before inspecting the p_chan, we must check if the circuit is marked for close
because if it is the case, the channels are nullified from the circuit.

Several valid cases can mark the circuit for close of the directory
connection.

Fixes #31958

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-24 11:08:25 -04:00
David Goulet
ed57a04a65 hs-v3: Remove a BUG() caused by an acceptable race
hs_client_purge_state() and hs_cache_clean_as_client() can remove a descriptor
from the client cache with a NEWNYM or simply when the descriptor expires.

Which means that for an INTRO circuit being established during that time, once
it opens, we lookup the descriptor to get the IP object but hey surprised, no
more descriptor.

The approach here is minimalist that is accept the race and close the circuit
since we can not continue. Before that, the circuit would stay opened and the
client wait the SockTimeout.

Fixers #28970.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-24 08:50:01 -04:00
Nick Mathewson
fcdb66acd3 Add a script to rename C identifiers, and optionally add a commit message
This script should "pay for itself" if it prevents one bug caused by
careless search-replace-commit loops.
2019-10-24 08:20:31 -04:00
teor
14b197a148
Travis: Use macOS 10.14 with Xcode 11.2
Closes ticket 32241.
2019-10-24 11:44:43 +10:00
teor
20606b8a15
Merge remote-tracking branch 'tor-github/pr/1447' 2019-10-24 10:00:47 +10:00
teor
4342486649
Travis: Use zstd in our Travis Linux builds
Recent Ubuntu versions have zstd >= 1.1, which is an optional tor build
dependency.

Closes ticket 32242.
2019-10-24 09:26:54 +10:00
David Goulet
b6c24eb484 hs-v3: Remove the circuit_established intro flag
Only use the HS circuit map to know if an introduction circuit is established
or not. No need for a flag to keep state of something we already have in the
circuit map. Furthermore, the circuit map gets cleaned up properly so it will
always have the "latest truth".

This commit also removes a unit test that was testing specifically that flag
but now we rely solely on the HS circuit map which is also tested few lines
below the removed test.

Fixes #32094

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-23 11:51:23 -04:00
David Goulet
9586ae178a Merge branch 'tor-github/pr/1451' 2019-10-23 09:11:43 -04:00
teor
34509e78c6
Merge remote-tracking branch 'tor-github/pr/1449' 2019-10-23 22:59:16 +10:00
teor
226f11002d
changes: file for 32216 2019-10-23 13:36:39 +10:00
teor
d804a81cf1
changes: file for 29603
We merged this change without a changes file.
2019-10-23 12:26:32 +10:00
teor
8bc65cda44
Merge branch 'pr1450_squashed' into maint-0.4.1 2019-10-23 09:58:22 +10:00
Nick Mathewson
f3c0a0b9fe
Authorities reject relays running unsupported Tor release series.
Our minimum version is now 0.2.9.5-alpha.  Series 0.3.0, 0.3.1,
0.3.2, 0.3.3, and 0.3.4 are now rejected.

Also, extract this version-checking code into a new function, so we
can test it.

Closes ticket 31549.

Also reject 0.3.5.0 through 0.3.5.6-rc as unstable.
2019-10-23 09:57:51 +10:00
teor
9db1602ec5
Merge branch 'maint-0.4.2' 2019-10-23 08:47:30 +10:00
teor
4a5c909ce5
Merge branch 'maint-0.4.0' into maint-0.4.1 2019-10-23 08:47:15 +10:00
teor
57acdaa3f1
Merge branch 'maint-0.3.5' into maint-0.4.0 2019-10-23 08:47:08 +10:00
teor
641f130447
Merge remote-tracking branch 'tor-github/pr/1361' into maint-0.4.0 2019-10-23 08:35:17 +10:00
teor
c77162e4e9
Merge remote-tracking branch 'tor-github/pr/1360' into maint-0.3.5 2019-10-23 08:32:52 +10:00
teor
8682442c76
Merge remote-tracking branch 'tor-github/pr/1351' into maint-0.2.9 2019-10-23 08:32:22 +10:00
teor
27965f1ef2
Merge remote-tracking branch 'tor-github/pr/1284' into maint-0.3.5 2019-10-23 08:30:48 +10:00
teor
003be727c4
Merge remote-tracking branch 'tor-github/pr/1256' into maint-0.3.5 2019-10-23 08:28:03 +10:00
teor
7660a7cf7d
Merge remote-tracking branch 'tor-github/pr/1178' into maint-0.2.9 2019-10-23 08:20:45 +10:00
Roger Dingledine
4233fb7014
clarify in man page: we count by powers of two
Make clear in the man page, in both the bandwidth section and the
accountingmax section, that Tor counts in powers of two, not
powers of ten: 1 GByte is 1024*1024*1024 bytes, not one billion
bytes.

Resolves ticket 32106.
2019-10-23 07:50:20 +10:00
Nick Mathewson
1cdc030c3d Merge branch 'maint-0.4.2' 2019-10-22 14:47:28 -04:00
Nick Mathewson
2ed194c9a9 Merge remote-tracking branch 'tor-github/pr/1441' into maint-0.4.2 2019-10-22 14:46:10 -04:00
Nick Mathewson
04addabb04 Changes file for options_validate() API changes in #32187. 2019-10-22 14:24:09 -04:00
Nick Mathewson
91413e04b4 Remove changes files that are already merged in 0.4.2. 2019-10-22 13:01:25 -04:00
Nick Mathewson
3c071f3002 Merge remote-tracking branch 'tor-github/pr/1330' into maint-0.4.1 2019-10-22 12:54:37 -04:00
Nick Mathewson
d08d29f15f Merge remote-tracking branch 'tor-github/pr/1341' into maint-0.4.1 2019-10-22 12:53:06 -04:00
Nick Mathewson
7d75e1dbdf Merge remote-tracking branch 'tor-github/pr/1446' 2019-10-22 12:52:32 -04:00
Nick Mathewson
b588b60876 Merge remote-tracking branch 'tor-github/pr/1343' into maint-0.4.1 2019-10-22 12:51:27 -04:00
Nick Mathewson
9769df89fe Merge remote-tracking branch 'tor-github/pr/1303' into maint-0.4.1 2019-10-22 12:15:06 -04:00
Nick Mathewson
c1bf4260b6 Merge remote-tracking branch 'tor-github/pr/1302' into maint-0.4.1 2019-10-22 12:13:47 -04:00
Nick Mathewson
d4dde249a0 Merge remote-tracking branch 'tor-github/pr/1346' into maint-0.4.1 2019-10-22 12:11:50 -04:00
Nick Mathewson
4013e50cb7 Merge branch 'maint-0.3.5' into maint-0.4.0 2019-10-22 12:10:30 -04:00
Nick Mathewson
6965798a16 Merge branch 'maint-0.4.0' into maint-0.4.1 2019-10-22 12:10:30 -04:00
Nick Mathewson
21c3488af7 Merge remote-tracking branch 'tor-github/pr/1376' into maint-0.3.5 2019-10-22 12:10:08 -04:00
Nick Mathewson
4c8af10f0e Merge remote-tracking branch 'tor-github/pr/1385' into maint-0.4.1 2019-10-22 12:08:46 -04:00
Nick Mathewson
b2d487ae22 Merge branch 'ticket31705_v2' into ticket31705_v2_merged
Conflicts:
	src/feature/dirparse/authcert_parse.c
	src/feature/dirparse/ns_parse.c
	src/feature/hs/hs_service.c
	src/lib/conf/conftesting.h
	src/lib/log/log.h
	src/lib/thread/threads.h
	src/test/test_options.c

These conflicts were mostly related to autostyle improvements, with
one or two due to doxygen fixes.
2019-10-22 09:39:06 -04:00
Nick Mathewson
2d013bbe5c Merge remote-tracking branch 'tor-github/pr/1417' 2019-10-22 08:36:32 -04:00
Nick Mathewson
8d84e10e87 Make options_validate() no longer use its "defaults" argument.
It can just look at what the defaults are.

Closes ticket 32185.
2019-10-22 08:30:00 -04:00
Nick Mathewson
a1d5341374 Merge branch 'bug32175' 2019-10-22 07:51:30 -04:00
Nick Mathewson
65e80ce646 Merge branch 'from_setconf_removal_squashed' 2019-10-22 07:50:42 -04:00
Nick Mathewson
0bb2e77283 changes file for 31999 2019-10-22 07:50:13 -04:00
teor
b3478a8856
Merge branch 'maint-0.4.2' 2019-10-22 20:48:26 +10:00
teor
2318bb237f
Merge branch 'maint-0.4.0' into maint-0.4.1 2019-10-22 20:48:13 +10:00
teor
9bb0ca122f
Merge branch 'maint-0.3.5' into maint-0.4.0 2019-10-22 20:48:05 +10:00
teor
bed4390133
Merge remote-tracking branch 'origin/maint-0.3.5' into maint-0.3.5 2019-10-22 20:47:44 +10:00
teor
8f84999f58
Merge branch 'ticket32177_041' into ticket32177_042
Merge RUST_VERSION from maint-0.4.2 into disabled macOS rust build
from ticket32177_041.
2019-10-22 19:44:58 +10:00
teor
86b1714731
Merge branch 'ticket32177_040' into ticket32177_041 2019-10-22 19:43:38 +10:00
teor
868bcc24e5
Merge branch 'ticket32177_035' into ticket32177_040 2019-10-22 19:43:33 +10:00
teor
8e0190d837
Merge branch 'maint-0.3.5' into ticket32177_035 2019-10-22 19:43:18 +10:00
teor
92ad87b808
Merge branch 'ticket32177_029' into ticket32177_035
Stem from maint-0.3.5, disabled macOS chutney from ticket32177_029.
2019-10-22 19:42:23 +10:00
teor
511aeba8ee
Travis: Disable all but one macOS build
We need to mitigate slow scheduling of Travis macOS jobs.

Closes ticket 32177.
2019-10-22 19:35:43 +10:00
Nick Mathewson
53aa159632 Merge branch 'maint-0.4.0' into maint-0.4.1 2019-10-21 18:44:44 -04:00
Nick Mathewson
89ead08eef Merge branch 'maint-0.3.5' into maint-0.4.0 2019-10-21 18:44:44 -04:00
Nick Mathewson
7a35c8d8be Merge branch 'maint-0.4.1' into maint-0.4.2 2019-10-21 18:44:44 -04:00
Nick Mathewson
65c0df4dbf Merge branch 'maint-0.4.2' 2019-10-21 18:44:44 -04:00
Taylor Yu
97e8a05083 Changes file for ticket 32176 2019-10-21 16:20:12 -05:00
Nick Mathewson
b064e0420a Changes file for 32175 (test_options.c cleanup) 2019-10-21 14:46:04 -04:00
Nick Mathewson
7dc78aca29 Merge remote-tracking branch 'tor-github/pr/1430' 2019-10-21 12:43:26 -04:00
Roger Dingledine
a7ccd9a997 respect accountingmax during soft hibernation
Relays now respect their AccountingMax bandwidth again. When relays
entered "soft" hibernation (which typically starts when we've hit
90% of our AccountingMax), we had stopped checking whether we should
enter hard hibernation. Soft hibernation refuses new connections and
new circuits, but the existing circuits can continue, meaning that
relays could have exceeded their configured AccountingMax.

This commit rolls back some of the cpu-saving fixes, where we tried
to avoid calling so many of our events while we're off the network.

That's because PERIODIC_EVENT_FLAG_NEED_NET checks net_is_disabled(),
which returns true even if we're only in soft hibernation.

Fixes bug 32108; bugfix on 0.4.0.1-alpha.
2019-10-21 04:14:42 -04:00
teor
7a72e71f74
Merge remote-tracking branch 'tor-github/pr/1434' 2019-10-21 15:24:22 +10:00
teor
3b2525c375
Fix changes file and string typos
Part of 31684.
2019-10-21 13:56:58 +10:00
AmreshVenugopal
6413b2102f
control: Add GETINFO support for dumping microdesc consensus
- Allows control port to read microdesc consensus using:
GETINFO dir/status-vote/microdesc/consensus

add: Helper function `getinfo_helper_current_consensus`
test: check if GETINFO commands return expected consensus data.

Resolves 31684.
2019-10-21 13:54:55 +10:00
teor
77c85360f6
Merge branch 'maint-0.4.2' 2019-10-21 13:28:04 +10:00
teor
04e9e74f1d
Merge remote-tracking branch 'tor-github/pr/1422' into maint-0.4.2 2019-10-21 13:07:39 +10:00
teor
a1f73cb93d
Merge branch 'maint-0.4.2' 2019-10-21 09:45:34 +10:00
teor
5c8ecf364a
Merge remote-tracking branch 'tor-github/pr/1354' into maint-0.4.2 2019-10-21 09:44:42 +10:00
teor
f420b60c19
Appveyor: Use Windows Server 2019
Instead of Windows Server 2016.

Closes ticket 32086.
2019-10-20 22:04:08 +10:00
teor
b1f71eeed6
changes: file for 32123
Create an optional relay module, which can be disabled using the
--disable-module-relay configure option. When it is set, also disable
the dirauth module.

Add a minimal implemention, which disables the relay and dircache modes
in tor.

Closes ticket 32123.
2019-10-20 20:26:09 +10:00
teor
cf2b00d3f5
test/rebind: Make control formatting and log parsing more robust
* actually sleep when tor has not logged anything
* log at debug level when waiting for tor to log something
* backslash-replace bad UTF-8 characters in logs
* format control messages as ASCII: tor does not accept UTF-8 control commands

Fixes bug 31837; bugfix on 0.3.5.1-alpha.
2019-10-20 20:09:35 +10:00
Nick Mathewson
37320bce06 Merge branch 'maint-0.4.2' 2019-10-18 12:42:56 -04:00
Nick Mathewson
f0f3f3338e Merge remote-tracking branch 'tor-github/pr/1427' into maint-0.4.2 2019-10-18 12:42:49 -04:00
Nick Mathewson
264c5312eb Merge branch 'maint-0.4.2' 2019-10-18 12:32:49 -04:00
Nick Mathewson
0994050c4a Merge remote-tracking branch 'tor-github/pr/1426' into maint-0.4.2 2019-10-18 12:32:29 -04:00
Nick Mathewson
7c5716d162 Merge branch 'maint-0.4.2' 2019-10-18 12:27:49 -04:00
Nick Mathewson
57c4af16f0 Merge remote-tracking branch 'tor-github/pr/1396' into maint-0.4.2 2019-10-18 12:27:39 -04:00
Nick Mathewson
fbd2fef220 Merge branch 'maint-0.4.2' of git-rw.torproject.org:/tor into maint-0.4.2 2019-10-18 12:25:55 -04:00
teor
b3fc3b609b
changes: file for 32124. 2019-10-18 17:26:09 +10:00
teor
d616214e47
Merge branch 'maint-0.4.2' 2019-10-18 12:05:20 +10:00
teor
f73c8bd786
Merge remote-tracking branch 'tor-github/pr/1407' into maint-0.4.2 2019-10-18 12:05:07 +10:00
Alexander Færøy
389b37246e Remove overly strict assertions in transports.c.
This patch removes an overly strict tor_assert() and an ignorable BUG()
expression. Both of these would trigger if a PT was unable to configure
itself during startup. The easy way to trigger this is to configure an
obfs4 bridge where you make the obfs4 process try to bind on a port
number under 1024.

See: https://bugs.torproject.org/31091
2019-10-17 21:33:54 +02:00
Alexander Færøy
85b4a5c276 Handle errors from execve() in the Unix process backend more gracefully.
This patch removes a call to tor_assert_unreached() after execve()
failed. This assertion leads to the child process emitting a stack trace
on its standard output, which makes the error harder for the user to
demystify, since they think it is an internal error in Tor instead of
"just" being a "no such file or directory" error.

The process will now instead output "Error from child process: X" where
X is the stringified version of the errno value.

See: https://bugs.torproject.org/31810
2019-10-17 20:52:22 +02:00
Nick Mathewson
800b823c29 Merge branch 'cmdline_refactor' 2019-10-17 12:01:45 -04:00
Nick Mathewson
35c18870b4 add a changes file for 32003 (command-line option parsing). 2019-10-17 12:01:40 -04:00
Alexander Færøy
9915b8f0bc Handle errors from execve() in the Unix process backend more gracefully.
This patch removes a call to tor_assert_unreached() after execve()
failed. This assertion leads to the child process emitting a stack trace
on its standard output, which makes the error harder for the user to
demystify, since they think it is an internal error in Tor instead of
"just" being a "no such file or directory" error.

The process will now instead output "Error from child process: X" where
X is the stringified version of the errno value.

See: https://bugs.torproject.org/31810
2019-10-17 16:39:05 +02:00
David Goulet
4a8d491322 mainloop: Disable periodic events before a destroy
When tearing down all periodic events during shutdown, disable them first so
their enable flag is updated.

This allows the tor_api.h to relaunch tor properly after a clean shutdown.

Fixes #32058

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-17 10:11:32 -04:00
Nick Mathewson
0081d6c112 Merge branch 'ticket31373_042_01_squashed' 2019-10-17 10:09:16 -04:00
David Goulet
7fcf999c63 Print summary at the end of the configure script
Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-17 10:08:34 -04:00
teor
5f3233ce1a
Merge branch 'maint-0.4.2' 2019-10-17 14:52:19 +10:00
teor
e483257e1b
Merge branch 'maint-0.3.5' into maint-0.4.0 2019-10-17 14:51:58 +10:00
teor
92c4dc9b14
Merge remote-tracking branch 'tor-github/pr/1373' into maint-0.4.2 2019-10-17 14:51:30 +10:00
teor
13daf339a9
Merge remote-tracking branch 'tor-github/pr/1372' into maint-0.4.1 2019-10-17 14:51:02 +10:00
teor
702aa8f775
Merge remote-tracking branch 'tor-github/pr/1370' into maint-0.3.5 2019-10-17 14:50:28 +10:00
teor
c660f47960
Merge remote-tracking branch 'tor-github/pr/1369' into maint-0.2.9 2019-10-17 14:49:52 +10:00
Nick Mathewson
2c97cf3add Merge remote-tracking branch 'tor-github/pr/1329' 2019-10-16 12:31:47 -04:00
Alexander Færøy
8162859ef7 Add changes file for #31147
See: https://bugs.torproject.org/31147
2019-10-16 18:07:28 +02:00
Nick Mathewson
911adb4d2b Make doc/doxygen before running doxygen.
This makes out-of-tree doxygen builds work.

Closes ticket 32113.
2019-10-16 10:31:44 -04:00
Nick Mathewson
593acfabb3 Doxygen: stop producing LaTeX.
Running doxygen with latex gave us all manner of unicode issues,
slowed down the "make doxygen" target by a lot, and added several
latex dependencies... all to produce a 4000-page reference manual
which is probably not what anybody wanted.

Closes ticket 32099.
2019-10-16 09:56:31 -04:00
Nick Mathewson
033d76b0e0 Doxygen: update doxyfile to a more recent version.
I have left the settings at their old values, except when they
referred to nonexistent files.

Closes ticket 32110
2019-10-16 09:07:21 -04:00
David Goulet
09e6c0f7c7 hs-v3: Fix possible memory leak in error code path
Found by coverity CID 1454769.

There were a second possible leak that is also fixed in this commit.

Fixes #32063

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-15 08:54:11 -04:00
Nick Mathewson
eebd2d44a1 Merge remote-tracking branch 'tor-github/pr/1393' into maint-0.4.2 2019-10-14 15:55:13 -04:00
Nick Mathewson
2e5724d153 Merge branch 'ticket31682_042_01_squashed' 2019-10-11 10:21:58 -04:00
David Goulet
b356b3907a hs-v3: Fix implicit ssize_t to size_t conversion
Found by Coverity.

Fixes #31682

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-11 10:20:36 -04:00
Nick Mathewson
0d82a8be77 Merge remote-tracking branch 'tor-github/pr/1394' 2019-10-09 16:44:12 -04:00
Nick Mathewson
ab064cf762 Merge remote-tracking branch 'tor-github/pr/1399' 2019-10-09 16:37:47 -04:00
Nick Mathewson
755f001600 Merge remote-tracking branch 'tor-github/pr/1401' 2019-10-09 16:29:46 -04:00
Nick Mathewson
99809834a7 Merge branch 'bug30344_squashed_035' 2019-10-09 16:26:31 -04:00
George Kadianakis
841cff6e4f Stop libevent from reading data from closed connections.
Code adapted from Rob's proposed patch in #30344.

Also add a comment in connection_mark_for_close_internal_() on why we should
not be adding extra code there without a very good reason.
2019-10-09 16:24:49 -04:00
David Goulet
f50de3a918 hs-v3: Do not remove intro point if circuit exists
When considering introduction point of a service's descriptor, do not remove
an intro point that has an established or pending circuit.

Fixes #31652

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-08 17:02:47 -04:00
David Goulet
1f60337da4 Merge branch 'tor-github/pr/1381' 2019-10-08 14:49:39 -04:00
George Kadianakis
081bd37315 Fix flapping of test_service_intro_point() unittest. 2019-10-08 19:00:43 +03:00
Nick Mathewson
7a26f14a37 Merge remote-tracking branch 'tor-github/pr/1317' 2019-10-07 10:23:44 -04:00
Nick Mathewson
56e8d84ea3 Merge branch 'ticket31548_035_01_squashed' 2019-10-07 10:21:40 -04:00
David Goulet
984a28f3e5 hs-v3: Make service pick the exact amount of intro points
When encoding introduction points, we were not checking if that intro points
had an established circuit.

When botting up, the service will pick, by default, 3 + 2 intro points and the
first 3 that establish, we use them and upload the descriptor.

However, the intro point is removed from the service descriptor list only when
the circuit has opened and we see that we have already enough intro points, it
is then removed.

But it is possible that the service establishes 3 intro points successfully
before the other(s) have even opened yet.

This lead to the service encoding extra intro points in the descriptor even
though the circuit is not opened or might never establish (#31561).

Fixes #31548

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-07 10:20:09 -04:00
Nick Mathewson
58b87a2c59 Merge remote-tracking branch 'tor-github/pr/1379' 2019-10-07 10:15:46 -04:00
Nick Mathewson
52194c8681 Merge remote-tracking branch 'tor-github/pr/1390' 2019-10-07 10:13:32 -04:00
Nick Mathewson
fdfb4b196b Use {mock,unmock}_hostname_resolver() in relevant tests
These tests all invoke the hostname resolver in one way or another,
and therefore potentially block if our DNS server is missing,
absent, or extremely slow.  Closes ticket 31841.
2019-10-04 08:03:19 -04:00
teor
ff304f3be7
tls: Log TLS read buffer length bugs once
Rather than filling the logs with similar warnings.

Fixes bug 31939; bugfix on 0.3.0.4-rc.
2019-10-04 12:33:34 +10:00
David Goulet
52b7ae71b3 hs: ADD_ONION NEW:BEST now defaults to ED25519-V3
From RSA1024 (v2) to v3 now.

Closes #29669

Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-10-03 15:43:03 -04:00
Nick Mathewson
519afb0ece Sort changes entries into a changelog for 0.4.2.2-alpha 2019-10-03 12:22:46 -04:00
George Kadianakis
9309eaf8ea Merge branch 'tor-github/pr/1377' 2019-10-03 19:13:57 +03:00
George Kadianakis
3778b97cab Merge branch 'tor-github/pr/1276' 2019-10-03 19:13:02 +03:00
Nick Mathewson
4d4e2abd2f Authorities reject relays running unsupported Tor release series.
Our minimum version is now 0.2.9.5-alpha.  Series 0.3.0, 0.3.1,
0.3.2, 0.3.3, and 0.3.4 are now rejected.

Also, extract this version-checking code into a new function, so we
can test it.

Closes ticket 31549.

Also reject 0.3.5.0 through 0.3.5.6-rc as unstable.
2019-10-03 19:12:46 +03:00
Nick Mathewson
05a324b564 Merge remote-tracking branch 'tor-github/pr/1376' 2019-10-03 09:19:37 -04:00
Nick Mathewson
5fd137c482 Merge remote-tracking branch 'tor-github/pr/1358' 2019-10-03 09:11:49 -04:00
Nick Mathewson
de7fcae72a Merge remote-tracking branch 'tor-github/pr/1382' 2019-10-03 09:08:23 -04:00
teor
f0993d3831 configure: Give a more useful message when pkg-config fails
When pkg-config is not installed, or a library that depends on
pkg-config is not found, tell the user what to do to fix the
problem.

Fixes bug 31922; bugfix on 0.3.1.1-alpha.
2019-10-03 16:31:20 +10:00
teor
3d17fafa04
control/control: Refactor some error handling code
Split some protocol error handling out of
connection_control_process_inbuf().

This refactor reduces the size of a practracker exception.

Closes 31840.
2019-10-03 11:35:42 +10:00
Nick Mathewson
bca30bcb90 Merge remote-tracking branch 'tor-github/pr/1374' 2019-10-02 19:19:11 -04:00
David Goulet
ca1f18c159 Merge branch 'tor-github/pr/1385' 2019-10-02 14:15:31 -04:00
David Goulet
014abf86e5 Merge branch 'tor-github/pr/1344' 2019-10-02 10:37:49 -04:00
David Goulet
40be20d542 Merge branch 'tor-github/pr/1363' 2019-10-02 10:34:46 -04:00
Nick Mathewson
a74c180691 Merge branch 'maint-0.3.5' into maint-0.4.0 2019-10-02 08:01:34 -04:00
Nick Mathewson
4dcbbe4166 Merge branch 'maint-0.4.0' into maint-0.4.1 2019-10-02 08:01:34 -04:00
Nick Mathewson
c81e1e4542 Merge branch 'maint-0.4.1' 2019-10-02 08:01:34 -04:00
Nick Mathewson
7b9cb4c47b Merge branch 'maint-0.2.9' into maint-0.3.5 2019-10-02 08:01:33 -04:00
Karsten Loesing
90de776ea9 Update geoip and geoip6 to the October 1 2019 database. 2019-10-02 11:11:27 +02:00
Nick Mathewson
2b825a1a2e Fix a crash bug in max_u16_in_sl()
The documentation for this function says that the smartlist can
contain NULLs, but the code only handled NULLs if they were at the
start of the list.

We didn't notice this for a long time, because when Tor is run
normally, the sequence of msg_id_t is densely packed, and so this
list (mapping msg_id_t to channel_id_t) contains no NULL elements.
We could only run into this bug:
  * when Tor was running in embedded mode, and starting more than once.
  * when Tor ran first with more pubsub messages enabled, and then
    later with fewer.
  * When the second run (the one with fewer enabled pubsub messages)
    had at least some messages enabled, and those messages were not
    the ones with numerically highest msg_id_t values.

Fixes bug 31898; bugfix on 47de9c7b0a
in 0.4.1.1-alpha.
2019-10-01 13:01:20 -04:00
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
George Kadianakis
e8e42f4af9 Help users who try to use v2 client auth in v3 onions. 2019-10-01 13:41:21 +03: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
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
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
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
3283fd7e79 Changes file for 31759 and 31779 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
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
c9c046c365
changes: file for 31614 2019-09-26 12:22:21 +10:00
Nick Mathewson
40a22fb707 Merge remote-tracking branch 'tor-github/pr/1349' 2019-09-25 13:07:19 -04:00
rl1987
b4aeeb77ba Merge advice from this_not_that.md in torguts repo into our main coding standard doc 2019-09-25 17:15:12 +03: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
6712fb9e27 Merge branch 'tor-github/pr/1353' 2019-09-25 14:16:28 +03:00
George Kadianakis
e77ad795c6 Merge branch 'tor-github/pr/1322' 2019-09-25 14:13:44 +03:00
George Kadianakis
99f75373de Merge branch 'tor-github/pr/1309' 2019-09-25 14:12:42 +03:00
teor
d30a042fa8 test: Use SEVERITY_MASK_IDX() to find the LOG_* mask indexes
In the unit tests and fuzzers.

Fixes bug 31334; bugfix on 0.2.5.2-alpha.
2019-09-25 16:40:09 +10:00
Nick Mathewson
b03cb0cc26 Add a changes file about the introduction of doc/HACKING/design. 2019-09-24 19:35:42 -04:00
Nick Mathewson
7071144859 Merge branch 'ticket31372_041' into ticket31372_042 2019-09-24 08:04:41 -04:00
Nick Mathewson
836b7a538e Merge branch 'ticket31372_040' into ticket31372_041 2019-09-24 08:04:20 -04:00
Nick Mathewson
246fdd8742 Merge branch 'ticket31372_035' into ticket31372_040 2019-09-24 08:02:44 -04:00
Nick Mathewson
da5c8277ea Merge branch 'ticket31372_029' into ticket31372_035 2019-09-24 08:01:43 -04:00
teor
0c07cd24d4
changes: file for 31839 2019-09-24 15:22:57 +10:00
teor
c7c849bba8
configure: Explain --disable-module-dirauth better
Explain what the optional Directory Authority module is, and what
happens when it is disabled.

Fixes bug 31825; bugfix on 0.3.4.1-alpha.
2019-09-24 11:29:22 +10:00
teor
876b3e2775
Merge branch 'bug31408_035' into bug31408_master 2019-09-24 11:07:38 +10:00
teor
0614f83905
changes: use correct bugfix release, and reword changes file for 31408 2019-09-24 11:06:20 +10:00
Nick Mathewson
49a11f8a8a Try using make -k in the Appveyor configuration
Frequently, when a patch fails, it has failures in several files.
Using the "-k" flag will let us learn all the compilation errors,
not just the first one that the compiler hits.

Based on a patch by rl1987.

Closes ticket 31372.
2019-09-23 15:08:34 -04:00
Nick Mathewson
6ed3d8dbd1 Try using make -k in Travis configuration
Frequently, when a patch fails, it has failures in several files.
Using the "-k" flag will let us learn all the compilation errors,
not just the first one that the compiler hits.

Based on a patch by rl1987.
2019-09-23 15:05:08 -04:00
AmreshVenugopal
3e45260594 fix: Ticket #31589
- The function `decrypt_desc_layer` has a cleaner interface.
- `is_superencrypted_layer` changed from `int` -> `bool`

[ticket details](https://trac.torproject.org/projects/tor/ticket/31589)

add(changes/*): changes file
fix(src/features/hs): is_superencrypted changed from `int` -> `bool`
fix(changes/ticket31589): header
add(changes/ticket31589): subsystem(onion services) to change
2019-09-23 23:52:01 +05:30
Daniel Pinto
15490816da
Fix bug when %including folder with comment only files. #31408
When processing a %included folder, a bug caused the pointer to
the last element of the options list to be set to NULL when
processing a file with only comments or whitepace. This could
cause options from other files on the same folder to be
discarded depending on the lines after the affected %include.
2019-09-23 10:39:08 +10:00
Nick Mathewson
6100378c29 changes file for microdesc_parse refactoring. 2019-09-19 14:37:24 -04:00
Nick Mathewson
37c616aeaf Merge branch 'bug31466_035' into bug31466_042 2019-09-18 15:48:25 -04:00
Nick Mathewson
bf4a27c0ea Merge branch 'bug31466_029' into bug31466_035_tmp 2019-09-18 15:42:40 -04:00
Nick Mathewson
f0e4120996 Add a rate-limit to our warning about the disabled .exit notation
This warning would previously be given every time we tried to open a
connection to a foo.exit address, which could potentially be used to
flood the logs.  Now, we don't allow this warning to appear more
than once every 15 minutes.

Fixes bug 31466; bugfix on 0.2.2.1-alpha, when .exit was first
deprecated.
2019-09-18 15:38:33 -04:00
Nick Mathewson
387cfccee4 Add a coccinelle script to look for {inc,dec}rements in log_debug
We want to forbid this pattern since, unlike the other log_*()
macros, log_debug() conditionally evaluates its arguments only if
debug-level logging is enabled.  Thus, a call to
    log_debug("%d", x++);
will only increment x if debugging logs are enabled, which is
probably not what the programmer intended.

One bug caused by this pattern was #30628.

This script detects log_debug( ) calls with any of E++, E--, ++E,
or --E in their arguments, where E is an arbitrary expression.

Closes ticket 30743.
2019-09-18 13:43:42 -04:00
Nick Mathewson
4bbefc2aac Merge branch 'bug30916_035' into bug30916_041 2019-09-18 11:19:41 -04:00
Nick Mathewson
2da4d64a64 Avoid a crash if our "current" and "old" ntor onion keys are equal
Our dimap code asserts if you try to add the same key twice; this
can't happen if everything is running smoothly, but it's possible if
you try to start a relay where secret_onion_key_ntor is the same as
secret_onion_key_ntor.old.

Fixes bug 30916; bugfix on 0.2.4.8-alpha when ntor keys were
introduced.
2019-09-18 11:14:45 -04:00
Nick Mathewson
82ad63ef40 changes file for 31338 2019-09-18 10:28:33 -04:00
Nick Mathewson
d6d3e829dd Merge branch 'maint-0.4.1' 2019-09-18 08:07:56 -04:00