Nick Mathewson
b546d8bc2b
Try a little harder to make sure we never call tor_compress_process wrong.
2017-06-26 09:39:59 -04:00
Nick Mathewson
acbe16a9a2
Log even more to try to debug 22719
2017-06-24 13:40:02 -04:00
Nick Mathewson
6caf924605
Add an additional log message to try to diagnose #22719
2017-06-24 11:27:46 -04:00
Nick Mathewson
89d0261eb5
Merge remote-tracking branch 'isis/bug4019'
2017-06-23 14:38:20 -04:00
Nick Mathewson
80360ed9fa
Merge branch 'bug3056_squashed'
2017-06-23 09:28:27 -04:00
Nick Mathewson
96fab4aaa6
Improve clarity, safety, and rate of dns spoofing log msg
...
Closes ticket 3056.
2017-06-23 09:28:17 -04:00
Nick Mathewson
90046a09dd
Merge branch 'maint-0.3.1'
2017-06-22 10:56:08 -04:00
Nick Mathewson
2c49a9852d
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-06-22 10:56:08 -04:00
Nick Mathewson
bdd267e74d
Combine our "don't do this if no consensus" entryguards checks
...
Suggested by asn on 22400 review.
2017-06-22 09:28:30 -04:00
Nick Mathewson
34ecfeb479
whitespace fix
2017-06-22 08:16:48 -04:00
Nick Mathewson
b9d8c8b126
Merge remote-tracking branch 'rl1987/bug22461'
2017-06-22 08:11:36 -04:00
Nick Mathewson
dc9ec519b5
Merge remote-tracking branch 'public/bug7890'
2017-06-22 08:04:12 -04:00
Isis Lovecruft
28344b74ba
config: Fix duplicate error message for nonlocal SocksPorts.
...
If `validate_only` is true, then just validate the configuration without warning
about it. This way, we only emit warnings when the listener is actually opened.
(Otherwise, every time we parse the config we will might re-warn and we would
need to keep state; whereas the listeners are only opened once.)
* FIXES #4019 .
2017-06-22 00:28:31 +00:00
Roger Dingledine
005500e14d
make assign_onionskin_to_cpuworker failure case more clear
...
now it looks like the other time we call it
2017-06-21 17:42:10 -04:00
Nick Mathewson
3a8a92fddd
Merge branch 'callgraph_reduction_v2'
2017-06-21 16:47:55 -04:00
Nick Mathewson
5dcc6bef1e
Add GETINFO targets to determine whether md/desc fetching is enabled
...
Closes ticket 22684.
2017-06-21 16:45:31 -04:00
Nick Mathewson
1c0a2335cd
Extract channel_do_open_actions() from non-open _change_state cases
...
This reduces the size of the largest SCC in the callgraph by 30
functions, from 58 to 28.
2017-06-21 14:03:00 -04:00
Nick Mathewson
5d3f484f4a
Merge branch 'maint-0.3.1'
2017-06-21 13:54:07 -04:00
Nick Mathewson
784b29a2bf
Merge branch 'bug22356_029' into maint-0.3.1
2017-06-21 13:54:02 -04:00
Nick Mathewson
35d6313500
Call it a BUG to use -1 in authdir_mode_handles_descs
2017-06-21 13:49:17 -04:00
huyvq
ad97714f22
Remove obsolete authdir_mode_any_nonhidserv()
...
- Replace it with authdir_mode()
2017-06-21 13:49:17 -04:00
huyvq
18cd1993ca
Convert authdir_mode_handles_descs() to alternative wrappers
...
-authdir_mode_handles_descs(options, ROUTER_PURPOSE_BRIDGE) to authdir_mode_bridge(options).
- authdir_mode_handles_descs(options, ROUTER_PURPOSE_GENERAL) to authdir_mode_v3(options).
2017-06-21 13:49:17 -04:00
huyvq
d92b999757
Convert authdir_mode_handles_descs(options, -1) with authdir_mode(options)
2017-06-21 13:49:17 -04:00
huyvq
0471c905a1
Remove obsolete authdir_mode_any_main()
2017-06-21 13:49:17 -04:00
Kevin Butler
0a96d11539
Better error message for GETINFO desc/(id|name) whenever microdescriptors are in use. Fixes #5847 .
2017-06-21 12:19:01 -04:00
Nick Mathewson
6595f55020
unit tests for peek_buf_startswith()
2017-06-21 11:20:33 -04:00
Nick Mathewson
ed4bc55450
Replace peek_buf_startswith() with a safe version
...
It's not okay to assume that the data in a buf_t is contiguous in
the first chunk.
2017-06-21 11:10:58 -04:00
Nick Mathewson
acf65544bb
Fix compilation on 1667 code.
2017-06-21 10:35:35 -04:00
Ravi Chandra Padmala
417d778652
Respond meaningfully to HTTP requests on the control port. Fix #1667
...
(Squashed with bufferevents portions removed, by nickm)
2017-06-21 10:34:26 -04:00
Nick Mathewson
884c0ffe3b
Merge branch 'maint-0.3.1'
2017-06-20 20:29:00 -04:00
Nick Mathewson
e51e7bd38b
Merge branch 'bug22502_redux_031' into maint-0.3.1
2017-06-20 20:27:48 -04:00
Nick Mathewson
c999e84436
Merge branch 'bug22672_031' into maint-0.3.1
2017-06-20 20:26:45 -04:00
Nick Mathewson
a9a76aa6ae
Merge branch 'maint-0.3.1'
2017-06-20 13:35:44 -04:00
Nick Mathewson
392e5457b8
Merge remote-tracking branch 'argonblue/bug22638' into maint-0.3.1
2017-06-20 13:35:38 -04:00
Nick Mathewson
9328bd524e
Enforce the rule that COMPRESS_OK means progress was made.
...
If COMPRESS_OK occurs but data is neither consumed nor generated,
treat it as a BUG and a COMPRESS_ERROR.
This change is meant to prevent infinite loops in the case where
we've made a mistake in one of our compression backends.
Closes ticket 22672.
2017-06-20 12:26:57 -04:00
Nick Mathewson
945256188a
mingw/windows printf lacks %zd ; use %lu and casts instead
...
(This approach can lose accuracy, but it's only in debug-level messages.)
Fixes windows compilation. Bugfix on recent compress.c changes; bug
not in any released Tor.
2017-06-20 12:12:55 -04:00
Nick Mathewson
5537e1fc45
If we successfully decompress an HTTP body, return immediately.
...
This prevents us from calling
allowed_anonymous_connection_compression_method() on the unused
guessed method (if any), and rejecting something that was already
safe to use.
2017-06-20 12:08:12 -04:00
Nick Mathewson
d8cd68caf1
If a _guessed_ compression method fails, it is never PROTOCOL_WARN.
...
Rationale: When use a guessed compression method, we already gave a
PROTOCOL_WARN when our guess differed from the declared method,
AND we gave a PROTOCOL_WARN when the declared method failed. It is
not a protocol problem that the guessed method failed too; it's just
a recovery attempt that failed.
2017-06-20 12:08:11 -04:00
Nick Mathewson
7b3161f008
It should be a PROTOCOL_WARN when we have an incorrect content-encoding.
...
Rationale: The server did not obey the protocol, and its
content-encoding got munged. That's what PROTOCOL_WARN is for.
2017-06-20 12:08:11 -04:00
Nick Mathewson
9018da06c7
Short-circuit the no-decompression-needed case, for clarity
...
This commit is mostly just deindentation.
2017-06-20 11:46:54 -04:00
Nick Mathewson
c0e9698fca
Extract "decompress" portion of connection_dir_client_reached_eof()
2017-06-20 11:43:37 -04:00
Taylor Yu
25edb41e6f
Fix compress_none.c header comment
...
The Doxygen \file markup for compress_none.c had the wrong filename.
Fixes #22638 .
2017-06-20 11:27:17 -04:00
Nick Mathewson
782eb02b79
Send the correct content-encoding when serving cached_dir_t objects
...
A cached_dir_t object (for now) is always compressed with
DEFLATE_METHOD, but in handle_get_status_vote() to we were using the
general compression-negotiation code decide what compression to
claim we were using.
This was one of the reasons behind 22502.
Fixes bug 22669; bugfix on 0.3.1.1-alpha
2017-06-20 11:26:51 -04:00
Nick Mathewson
eb632afb17
Correct the fix to bug 22629 to permit trailing non-garbage
...
This change makes it so that we can decompress concatenated zstd
outputs.
2017-06-20 10:24:22 -04:00
Nick Mathewson
94a1b8b66c
Add a unit test for decompressing concatenated inputs.
2017-06-20 10:21:35 -04:00
Nick Mathewson
2341368515
Merge branch 'maint-0.3.1'
2017-06-20 10:06:19 -04:00
Nick Mathewson
1c0459f19a
Merge remote-tracking branch 'teor/bug22502' into maint-0.3.1
2017-06-20 10:04:16 -04:00
Nick Mathewson
32e486de97
Don't expand guard sample set unless consensus is "reasonably live"
...
Fixes what I think is the main root cause of 22400. Bugfix on
0.3.0.1-alpha.
2017-06-19 15:48:47 -04:00
Nick Mathewson
1721487bea
Remove hardwired libfuzzer path; closes 22105.
2017-06-19 15:35:46 -04:00
Nick Mathewson
e3efc076c5
Downgrade "assign_to_cpuworker failed" to INFO.
...
Closes ticket 22356
2017-06-19 15:24:33 -04:00
Nick Mathewson
e01e4e0146
Merge branch 'ticket20575_031_01_squashed'
2017-06-19 14:16:21 -04:00
Nick Mathewson
0379439fe8
refer to the correct version
2017-06-19 14:15:04 -04:00
David Goulet
3f807ec058
config: Deprecate HTTPProxy option
...
Move the HTTPProxy option to the deprecated list so for now it will only warn
users but feature is still in the code which will be removed in a future
stable version.
Fixes #20575
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-06-19 14:14:17 -04:00
Nick Mathewson
bf95d678e8
Remove an XXXX RD comment that neither Roger or I understand. Closes 22420
2017-06-19 14:06:07 -04:00
Nick Mathewson
f6946d7a82
Merge remote-tracking branch 'arma/ticket22420'
2017-06-19 14:03:57 -04:00
Nick Mathewson
eff5e29404
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-06-19 13:52:19 -04:00
Nick Mathewson
71c701927a
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-06-19 13:52:19 -04:00
Nick Mathewson
32948ebc54
Merge branch 'maint-0.3.1'
2017-06-19 13:52:19 -04:00
Nick Mathewson
a3139c9750
Bump master to 0.3.2.0-alpha-dev. For 0.3.1, use maint-0.3.1
2017-06-19 11:57:44 -04:00
Nick Mathewson
59f29970fa
Permit the fchmod system call.
...
Fixes bug 22516; bugfix on 0.2.5.4-alpha.
2017-06-16 14:03:02 -04:00
teor
7d535ea9d3
Add extra logging during compression and decompression
...
This helps diagnose failures.
Part of #22502 .
2017-06-16 09:48:18 +10:00
teor
cbaf0c049c
Return TOR_COMPRESS_BUFFER_FULL when zstd has additional input
...
Fixes #22628 .
2017-06-16 09:47:32 +10:00
teor
617e1da636
Remove a redundant conditional in tor_zstd_compress_process
...
Part of #22502
2017-06-16 09:46:46 +10:00
teor
7605bd528e
Move a comment to the right place in tor_zstd_compress_process
...
Part of #22502
2017-06-16 09:45:58 +10:00
teor
952c9073ad
Check for trailing input garbage in tor_compress_impl() when decompressing
...
Fixes #22629 .
2017-06-16 09:41:29 +10:00
teor
8e1b37a4aa
Check if tor_compress_new() returns NULL in tor_compress_impl()
...
Partial fix to 22626.
2017-06-16 09:38:18 +10:00
Karsten Loesing
5b5e20a478
Add "fingerprint" line to bridge network status.
...
Implements #22207 .
2017-06-11 10:21:36 +02:00
Nick Mathewson
493d9cd17b
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-06-09 09:58:46 -04:00
Nick Mathewson
cd7d006e08
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-06-09 09:58:46 -04:00
Nick Mathewson
3f40d9ec20
Merge branch 'maint-0.3.0'
2017-06-09 09:58:46 -04:00
Nick Mathewson
307be8d4a7
Merge branch 'maint-0.2.7-redux' into maint-0.2.8
2017-06-09 09:58:45 -04:00
Nick Mathewson
24ee8595bf
Merge branch 'maint-0.2.6' into maint-0.2.7-redux
2017-06-09 09:58:45 -04:00
Nick Mathewson
3913f959e3
Merge branch 'maint-0.2.5' into maint-0.2.6
2017-06-09 09:58:45 -04:00
Nick Mathewson
325c507a09
Merge branch 'maint-0.2.4' into maint-0.2.5
2017-06-09 09:58:45 -04:00
Karsten Loesing
104e8fa751
Update geoip and geoip6 to the June 8 2017 database.
2017-06-09 15:47:49 +02:00
Nick Mathewson
6e7551c50d
Add -dev to version number.
2017-06-08 14:05:32 -04:00
Nick Mathewson
90758b2606
Add -dev to version number.
2017-06-08 14:05:29 -04:00
Nick Mathewson
5e554215dd
Add -dev to version number.
2017-06-08 14:05:27 -04:00
Nick Mathewson
5c47b92747
Add -dev to version number.
2017-06-08 14:05:22 -04:00
Nick Mathewson
44c8cb986d
Add -dev to version number.
2017-06-08 14:05:18 -04:00
Nick Mathewson
95a88f7283
Add -dev to version number.
2017-06-08 14:05:16 -04:00
Nick Mathewson
f3804f5999
Add -dev to version number.
2017-06-08 14:05:13 -04:00
Nick Mathewson
ec3ce773ad
Add -dev to version number.
2017-06-08 14:05:08 -04:00
Nick Mathewson
792931d53d
Bump to 0.2.8.14
2017-06-08 09:27:54 -04:00
Nick Mathewson
2efe0275bc
Bump to 0.2.7.8
2017-06-08 09:27:34 -04:00
Nick Mathewson
0de4620375
Bump to 0.2.6.12
2017-06-08 09:26:20 -04:00
Nick Mathewson
fa73f59ad3
bump to 0.2.5.14
2017-06-08 09:26:00 -04:00
Nick Mathewson
8e439a66f3
Bump to 0.2.4.29
2017-06-08 09:25:31 -04:00
Nick Mathewson
b533220249
bump to 0.2.9.11
2017-06-08 09:24:38 -04:00
Nick Mathewson
a0664fd0c3
bump to 0.3.0.8
2017-06-08 09:24:28 -04:00
Nick Mathewson
78d4200abe
Bump to 0.3.1.3-alpha.
2017-06-08 09:24:16 -04:00
Nick Mathewson
d15d09a968
Merge branch 'maint-0.2.7-redux' into maint-0.2.8
2017-06-08 09:21:15 -04:00
Nick Mathewson
c1646d6e89
Merge branch 'maint-0.2.6' into maint-0.2.7-redux
2017-06-08 09:21:15 -04:00
Nick Mathewson
40bccc2004
Merge branch 'maint-0.2.5' into maint-0.2.6
2017-06-08 09:21:15 -04:00
Nick Mathewson
dec7998f5c
Merge branch 'maint-0.2.4' into maint-0.2.5
2017-06-08 09:21:15 -04:00
Nick Mathewson
987c7cae70
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-06-08 09:21:15 -04:00
Nick Mathewson
53011e3e54
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-06-08 09:21:15 -04:00
Nick Mathewson
83135d75a3
Merge branch 'maint-0.3.0'
2017-06-08 09:21:15 -04:00
David Goulet
56a7c5bc15
TROVE-2017-005: Fix assertion failure in connection_edge_process_relay_cell
...
On an hidden service rendezvous circuit, a BEGIN_DIR could be sent
(maliciously) which would trigger a tor_assert() because
connection_edge_process_relay_cell() thought that the circuit is an
or_circuit_t but is an origin circuit in reality.
Fixes #22494
Reported-by: Roger Dingledine <arma@torproject.org>
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-06-08 09:21:10 -04:00
Nick Mathewson
9acca04025
Merge branch 'maint-0.3.0'
2017-06-08 09:17:32 -04:00
David Goulet
79b59a2dfc
TROVE-2017-004: Fix assertion failure in relay_send_end_cell_from_edge_
...
This fixes an assertion failure in relay_send_end_cell_from_edge_() when an
origin circuit and a cpath_layer = NULL were passed.
A service rendezvous circuit could do such a thing when a malformed BEGIN cell
is received but shouldn't in the first place because the service needs to send
an END cell on the circuit for which it can not do without a cpath_layer.
Fixes #22493
Reported-by: Roger Dingledine <arma@torproject.org>
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-06-08 09:14:10 -04:00
Nick Mathewson
9ab45d621c
Merge branch 'maint-0.3.0'
2017-06-06 11:34:11 -04:00
Nick Mathewson
68c3df69de
Repair the unit test behavior of my fix for 22508.
...
Apparently, the unit tests relied on being able to make ed->x509
link certs even when they hadn't set any server flags in the
options. So instead of making "client" mean "never generate an
ed->x509 cert", we'll have it mean "it's okay not to generate an
ed->x509 cert".
(Going with a minimal fix here, since this is supposed to be a
stable version.)
2017-06-06 11:32:01 -04:00
Nick Mathewson
14ffcc003d
Merge branch 'maint-0.3.0'
2017-06-06 09:32:45 -04:00
Nick Mathewson
4ed0f0d62f
Make generate_ed_link_cert() a no-op on clients.
...
Fixes bug 22508; bug not in any released Tor.
2017-06-06 09:32:11 -04:00
Nick Mathewson
5343d2b03c
Merge branch 'maint-0.3.0'
2017-06-05 16:35:40 -04:00
Nick Mathewson
ac1ddd5e5b
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-06-05 16:35:40 -04:00
Nick Mathewson
d561da10dd
Rename "link" variable to avoid shadowing warning.
2017-06-05 16:35:37 -04:00
Nick Mathewson
e3b1573be6
Merge branch 'maint-0.3.0'
2017-06-05 15:52:06 -04:00
Nick Mathewson
91f49bc0f0
Fix unit tests to work after own_link_cert assertion
...
The assert_nonfatal() I had added was triggered by some of the code
that tested the pre-ed case of CERTS cell generation.
2017-06-05 15:51:11 -04:00
Nick Mathewson
d5acdadaef
Merge branch 'bug22460_030_01' into maint-0.3.0
2017-06-05 15:44:36 -04:00
Nick Mathewson
d1c1dc229e
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-06-05 15:44:12 -04:00
Nick Mathewson
9fea00928c
Merge branch 'bug22460_case2_029_01_squashed' into maint-0.2.9
2017-06-05 15:28:13 -04:00
Nick Mathewson
ec84fc1d8e
Improve documentation on get_{peer,own}_certificate()
...
Make it clear that we're returning a newly allocated copy.
2017-06-05 15:27:33 -04:00
Nick Mathewson
8e9392c267
Repair link_handshake unit tests to mock tor_tls_get_own_cert()
...
The tests previously assumed that the link handshake code would be
calling get_my_certs() -- when I changed it to call get_own_cert()
instead for the (case 2) 22460 fix, the tests failed, since the tls
connection wasn't really there.
This change makes us start mocking out the tor_tls_get_own_cert()
function too.
It also corrects the behavior of the mock_get_peer_cert() function
-- it should have been returning a newly allocated copy.
2017-06-05 15:27:33 -04:00
Nick Mathewson
39b7e89c28
Test prerequisites: function to dup a cert, make get_own_cert mockable.
2017-06-05 15:27:33 -04:00
Nick Mathewson
50facb40bb
On v3 link handshake, send the correct link certificate
...
Previously we'd send the _current_ link certificate, which would
cause a handshaking failure when the TLS context rotated.
2017-06-05 15:27:33 -04:00
Nick Mathewson
2e5220cb8b
Merge branch 'maint-0.2.4' into maint-0.2.5
2017-06-05 14:38:54 -04:00
Nick Mathewson
4ee48cb434
Fix C89 warning (since Tor 0.2.4-5 still care about that.)
2017-06-05 14:38:38 -04:00
Nick Mathewson
db2f18b1f9
Merge branch 'maint-0.3.0'
2017-06-05 12:02:47 -04:00
Nick Mathewson
578a4392e9
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-06-05 12:02:26 -04:00
Nick Mathewson
d75be189df
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-06-05 12:02:15 -04:00
Nick Mathewson
33fcc0f61d
Merge branch 'maint-0.2.7-redux' into maint-0.2.8
2017-06-05 12:01:17 -04:00
Nick Mathewson
3f2d1f7f07
Merge branch 'maint-0.2.6' into maint-0.2.7-redux
2017-06-05 12:00:41 -04:00
Nick Mathewson
9ea3d0877a
Merge branch 'maint-0.2.5' into maint-0.2.6
2017-06-05 12:00:27 -04:00
Nick Mathewson
1a540b5792
Merge branch 'maint-0.2.4' into maint-0.2.5
2017-06-05 12:00:08 -04:00
Nick Mathewson
e3ebae4804
Fix undefined behavior in geoip_parse_entry().
...
Fixes bug 22490; bugfix on 6a241ff3ff
in 0.2.4.6-alpha.
Found by teor using clang-5.0's AddressSanitizer stack-use-after-scope.
2017-06-05 10:09:39 -04:00
Nick Mathewson
26d9fffae4
Merge branch 'bug22466_diagnostic_030'
2017-06-05 09:52:09 -04:00
Nick Mathewson
be741d7e63
Merge branch 'maint-0.3.0'
2017-06-05 09:51:57 -04:00
Nick Mathewson
e5bdfd66cf
Make code more clear about own_link_cert safety
...
It's okay to call add_ed25519_cert with a NULL argument: so,
document that. Also, add a tor_assert_nonfatal() to catch any case
where we have failed to set own_link_cert when conn_in_server_mode.
2017-06-05 09:35:55 -04:00
rl1987
f8c98759e5
Use string_is_valid_hostname in SOCKS4 request parsing codepath
2017-06-04 13:22:45 +02:00
rl1987
7f05f89663
Don't reject SOCKS5 requests that contain IP strings
2017-06-04 13:14:55 +02:00
rl1987
9e2f780923
Refrain from needless SOCKS5 warning
2017-06-03 18:04:47 +02:00
Nick Mathewson
41ed9e978b
Regenerate RSA->ed25519 identity crosscertificate as needed
2017-06-01 10:04:52 -04:00
Nick Mathewson
f2068ef862
Use tor_assert_nonfatal() to try to detect #22466
2017-06-01 09:42:32 -04:00
Nick Mathewson
34a6755b94
Fix ed25519 link certificate race on tls context rotation
...
Whenever we rotate our TLS context, we change our Ed25519
Signing->Link certificate. But if we've already started a TLS
connection, then we've already sent the old X509 link certificate,
so the new Ed25519 Signing->Link certificate won't match it.
To fix this, we now store a copy of the Signing->Link certificate
when we initialize the handshake state, and send that certificate
as part of our CERTS cell.
Fixes one case of bug22460; bugfix on 0.3.0.1-alpha.
2017-06-01 09:26:24 -04:00
Nick Mathewson
a9be768959
Bugfix: Regenerate more certificates when appropriate
...
Previously we could sometimes change our signing key, but not
regenerate the certificates (signing->link and signing->auth) that
were signed with it. Also, we would regularly replace our TLS x.509
link certificate (by rotating our TLS context) but not replace our
signing->link ed25519 certificate. In both cases, the resulting
inconsistency would make other relays reject our link handshakes.
Fixes two cases of bug 22460; bugfix on 0.3.0.1-alpha.
2017-05-31 18:45:35 -04:00
Andreas Stieger
1763aa058b
Fix GCC 7 -Wimplicit-fallthrough warnings (32 bit)
...
Add magic comments recognized by default -Wimplicit-fallthrough=3
Follow-up to e5f464, fixes Ticket 22446 for 32 bit.
2017-05-31 09:30:35 -04:00
Nick Mathewson
9d59769db7
Improve error message when all permitted Exits are down
...
The old "No specified non-excluded exit routers seem to be running"
message was somewhat confusing.
Fix for 7890.
2017-05-30 10:59:04 -04:00
David Goulet
5b33d95a3d
hs: Correctly validate v3 descriptor encrypted length
...
The encrypted_data_length_is_valid() function wasn't validating correctly the
length of the encrypted data of a v3 descriptor. The side effect of this is
that an HSDir was rejecting the descriptor and ultimately not storing it.
Fixes #22447
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-05-30 10:27:42 -04:00
Nick Mathewson
671c5dcde3
Merge remote-tracking branch 'public/bug6298'
2017-05-30 10:27:37 -04:00
Nick Mathewson
0fbe1a2c6f
Merge remote-tracking branch 'teor/bug22424'
2017-05-30 08:50:45 -04:00
Nick Mathewson
184d889f8a
Merge remote-tracking branch 'jigsaw/fix-22417-without-3-star'
2017-05-30 08:47:14 -04:00
Nick Mathewson
f9615f9d77
Merge remote-tracking branch 'teor/bug22421'
2017-05-30 08:42:20 -04:00
Andreas Stieger
e5f4642db3
Fix GCC 7 -Wimplicit-fallthrough warnings
...
Add magic comments recognized by default -Wimplicit-fallthrough=3
or break, as required.
2017-05-30 08:33:27 -04:00
Roger Dingledine
d1580ad49b
remove obsolete comment
...
we should have taken out this comment with commit aadff6274
during ticket 16480.
2017-05-30 02:42:32 -04:00
Daniel Pinto
94d321120e
Replace 3-star pointer with 2-star pointer
2017-05-28 20:24:48 +01:00
teor
79725289e1
If we do underflow the know usage of a storage, recalculate it
...
Fixes bug #22424 on 0.3.1.1-alpha.
2017-05-28 22:34:43 +10:00
teor
69b234a0a8
Refactor storage usage reductions into a static function
...
No behaviour change.
Part of #22424 .
2017-05-28 22:28:43 +10:00
teor
334fe6bb6b
Don't underflow usage when it is unknown and a file is removed
...
Part of #22424 .
2017-05-28 22:16:00 +10:00
teor
9e36b0beb9
Always check for usage underflow when removing a file in storage.c
...
Part of #22424 .
2017-05-28 22:12:09 +10:00
teor
f6841ae263
Fix comment typos in storage.c
2017-05-28 22:11:22 +10:00
teor
25ea8be9de
Update the client bootstrap comment in config.c for exponential backoff
...
This brings the description up to date with the exponential backoff
code introduced in 0.2.9.1-alpha.
Fixes bug #22421 .
2017-05-28 21:01:08 +10:00
Daniel Pinto
f8ccf8d9a9
Fix crash with %include
...
Fixes crash when including a folder that contains a non-empty file
without any values followed by any other non-empty file.
2017-05-28 09:53:14 +01:00
Roger Dingledine
084b64ba2e
simplify because relay_crypt_one_payload can't fail
2017-05-28 01:51:22 -04:00
Nick Mathewson
6fcaf83c98
Cleanup MOCK_IMPL (etc) to be findable with etags
...
A fair number of our mock_impl declarations were messed up so that
even our special AM_ETAGSFLAGS couldn't find them.
This should be a whitespace-only patch.
2017-05-26 14:07:06 -04:00
Nick Mathewson
159a8061cf
Mock tor_addr_lookup() during part of addr/basic test.
...
If this function isn't mocked, then our unit tests break on stupid
networks where localhost is broken or absent. Fixes bug 6298; bugfix
on 0.0.9pre2.
2017-05-26 13:53:32 -04:00
Nick Mathewson
5742e4fd8e
bump version to 0.3.1.2-alpha-dev
2017-05-26 10:23:53 -04:00
Nick Mathewson
2550ac7bb1
update version to 0.3.1.2-alpha
2017-05-26 08:58:08 -04:00
Nick Mathewson
ab9976b724
Merge remote-tracking branch 'arma/bug22368'
2017-05-25 08:54:51 -04:00
Roger Dingledine
657297a9f8
Merge branch 'maint-0.3.0'
2017-05-25 00:28:11 -04:00
Roger Dingledine
83439e78cc
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-05-25 00:27:27 -04:00
teor
ec61ae59a5
Stop leaking keypin-rejected routerinfos on directory authorities
...
When directory authorities reject a router descriptor due to keypinning,
free the router descriptor rather than leaking the memory.
Fixes bug 22370; bugfix on 0.2.7.2-alpha.
2017-05-25 00:09:40 -04:00
Roger Dingledine
5f74749fba
get rid of some dead code (leftover from commit fa04fe1
)
2017-05-24 23:37:00 -04:00
Roger Dingledine
d22d565331
add copy of MyFamily element to the descriptor, not the element itself
...
If we add the element itself, we will later free it when we free the
descriptor, and the next time we go to look at MyFamily, things will
go badly.
Fixes the rest of bug 22368; bugfix on 0.3.1.1-alpha.
2017-05-24 23:37:00 -04:00
Roger Dingledine
a7e75ff796
don't free the values in options->MyFamily when we make a descriptor
...
If we free them here, we will still attempt to access the freed memory
later on, and also we will double-free when we are freeing the config.
Fixes part of bug 22368.
2017-05-24 23:32:32 -04:00
Nick Mathewson
511c900686
Merge branch 'master' of git-rw.torproject.org:/tor
2017-05-24 10:25:00 -04:00
Nick Mathewson
b80a35e683
Improve the message we log on unexpected dirauth status code
...
It's still not great, but should be less confusing what's wrong
here.
Closes ticket 1121.
2017-05-24 09:08:59 -04:00
Roger Dingledine
cabad0b6c7
remove unused node_get_published_on function
...
in retrospect, we should have removed this with commit 1289474d
as part of #11742 , which was the last caller of it.
2017-05-24 00:43:44 -04:00
Nick Mathewson
994595ae5d
Don't say "downloading 1 descriptor, 4 at a time"
...
Fixes bug 19648, bugfix on 0.1.1.8-alpha.
2017-05-23 09:47:11 -04:00
teor
af98b862a5
Fix comments of functions that return tor_snprintf
...
No code changes needed: in the places where we actually check the
return value of these functions, we handle it correctly.
2017-05-23 18:44:45 +10:00
Roger Dingledine
4e3ea6d5c8
fix minor grammar error in comment
2017-05-22 20:06:38 -04:00
Nick Mathewson
d9b1471303
Merge remote-tracking branch 'ahf/bugs/22305'
2017-05-22 11:57:03 -04:00
Alexander Færøy
9604980733
Log a warning if we receive a disallowed compression method for an anonymous connection.
...
See: https://bugs.torproject.org/22305
2017-05-22 15:52:41 +00:00
Nick Mathewson
281f06a094
bump to 0.3.1.1-alpha
2017-05-22 11:52:19 -04:00
Nick Mathewson
9a50c73104
Merge remote-tracking branch 'ahf/bugs/22305'
2017-05-22 10:57:26 -04:00
Alexander Færøy
5a0eab68e1
Ensure that only GZip and Zlib compression is handled for anonymous connections.
...
See: https://bugs.torproject.org/22305
2017-05-22 14:45:12 +00:00
Alexander Færøy
2b26ac1390
Refactor error path handling in connection_dir_client_reached_eof().
...
This patch lifts the return value, rv, variable to the beginning of the
function, adds a 'done' label for clean-up and function exit and makes
the rest of the function use the rv value + goto done; instead of
cleaning up in multiple places.
See: https://bugs.torproject.org/22305
2017-05-22 14:42:18 +00:00
Nick Mathewson
cfe0a45750
Fix a compilation warning about duplicate typedef
2017-05-22 10:39:43 -04:00
Nick Mathewson
e5a929fef8
Raise common code for creating circuit_guard_state_t
...
This will help if we ever need to add more fields or change the
semantics of existing fields.
2017-05-22 09:13:18 -04:00
Nick Mathewson
b2e9a107b7
Merge remote-tracking branch 'asn/bug21969_bridges'
2017-05-22 09:09:16 -04:00
George Kadianakis
52498b8183
Set guard state on bridge descriptor fetches.
...
We used to not set the guard state in launch_direct_bridge_descriptor_fetch().
So when a bridge descriptor fetch failed, the guard subsystem would never
learn about the fail (and hence the guard's reachability state would not
be updated).
2017-05-22 15:57:33 +03:00
George Kadianakis
6009c89165
Set guard state on bridge descriptor fetches.
...
We used to not set the guard state in launch_direct_bridge_descriptor_fetch().
So when a bridge descriptor fetch failed, the guard subsystem would never
learn about the fail (and hence the guard's reachability state would not
be updated).
2017-05-22 15:56:32 +03:00
George Kadianakis
e102ad60d0
Refactor directory_initiate_command() so that it accepts guard_state.
2017-05-22 15:45:46 +03:00
Alexander Færøy
26795da900
Don't add "Accept-Encoding" header if directory connection is anonymous.
...
See: https://bugs.torproject.org/22305
2017-05-22 12:36:27 +00:00
Nick Mathewson
90894c87a5
Merge branch 'maint-0.3.0'
2017-05-22 08:32:18 -04:00
Nick Mathewson
5c52d3c2c0
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-05-22 08:32:07 -04:00
Roger Dingledine
6e5486b11a
dir auths reject 0.2.9.x for x<5, due to bug 20499
...
Directory authorities now reject relays running versions
0.2.9.1-alpha through 0.2.9.4-alpha, because those relays
suffer from bug 20499 and don't keep their consensus cache
up-to-date.
Resolves ticket 20509.
2017-05-22 08:31:39 -04:00
Roger Dingledine
0698a0beca
fix two typos in comments
...
closes ticket 22322
2017-05-22 01:43:52 -04:00
Roger Dingledine
a18b41cc77
fix typo in comment
2017-05-19 22:14:56 -04:00
Nick Mathewson
09b3cb0d72
Whoops; I broke check-spaces.
2017-05-19 16:02:58 -04:00
Nick Mathewson
13034e1574
Try another approach to fixing the bug in the #1922 test.
...
This isn't elegant, but it seems to be the best way around all of
the issues involved in escaping and quoting that we've gotten into
over the years.
2017-05-19 15:50:29 -04:00
Nick Mathewson
19615bce64
mingw fix: avoid "unused var" warning.
2017-05-19 15:50:12 -04:00
Nick Mathewson
8cb08f716d
fix a coverity resource leak warning
2017-05-19 15:20:57 -04:00
Nick Mathewson
4e6b13a38a
Fix uninitialized-variable warning on options_init_from_string().
2017-05-19 15:18:27 -04:00
Nick Mathewson
d950ad0dfd
Remove call to get_unquoted_path in config_process_include()
...
parse_config_line_from_str_verbose() already looks for strings
that are surrounded by quotes, and processes them with
unescape_string(). So things were getting decoded twice, which was
(in turn) playing havoc with backslashes on Windows.
2017-05-19 14:09:51 -04:00
Nick Mathewson
3628efe29c
Try to fix windows config/include_path_syntax test
...
It was trying to do %include "foo\", which won't work. It has to be
%include "foo\\".
2017-05-19 09:55:22 -04:00
Nick Mathewson
dcfed8c1c8
tt_* macros can "goto done;" so define any freeable things before them.
2017-05-19 08:55:14 -04:00
Nick Mathewson
ff1af5550a
strlen() returns size_t
2017-05-19 08:54:56 -04:00
Nick Mathewson
69ef94820b
Merge branch 'add_rust_squashed'
2017-05-19 08:47:18 -04:00
Sebastian Hahn
70c067102b
Allow Rust build using locally supplied crates or crates.io
...
This adds a couple of configure commands to control whether we're
requiring all dependencies to be available locally (default) or not
(--enable-cargo-online-mode). When building from a tarball, we require
the RUST_DEPENDENCIES variable to point to the local repository of
crates. This also adds src/ext/rust as a git submodule that contains
such a local repository for easy setup.
2017-05-19 08:47:11 -04:00
Sebastian Hahn
d6f9a4f11a
cargo-online-mode configure argument
...
Passing --enable-cargo-online-mode during configure allows cargo to make
network requests while building Tor or running tests. If this flag is
not supplied, the dependencies need to be available in the form of a
local mirror.
2017-05-19 08:47:11 -04:00
Sebastian Hahn
ed15511ac3
Add rustfmt.toml
2017-05-19 08:47:11 -04:00
Sebastian Hahn
f0516ed348
Run cargo test during make check
2017-05-19 08:47:11 -04:00
Sebastian Hahn
f8ef7c65d1
Add some Rust utility functions and print support
...
This gives an indication in the log that Tor was built with Rust
support, as well as laying some groundwork for further string-returning
APIs to be converted to Rust
2017-05-19 08:47:10 -04:00
Nick Mathewson
92d335b3dc
Merge remote-tracking branch 'jigsaw/torrc-dir-fix-1922_squashed2'
2017-05-19 08:46:13 -04:00
Nick Mathewson
d34fa32ece
Merge branch 'ticket21953_029'
2017-05-19 06:49:04 -04:00
Nick Mathewson
15cc41e664
Define HeapEnableTerminationOnCorruption if the headers don't.
...
MSDN says that it's always going to be 1, and they're usually pretty
accurate about that.
Fixes a bug in 21953.
2017-05-19 06:46:49 -04:00
Roger Dingledine
553cd7f0c5
fix typo
2017-05-19 02:06:44 -04:00
Daniel Pinto
ba3a5f82f1
Add support for %include funcionality on torrc #1922
...
config_get_lines is now split into two functions:
- config_get_lines which is the same as before we had %include
- config_get_lines_include which actually processes %include
2017-05-18 23:44:16 +01:00
Nick Mathewson
d1340bd5ac
bump to 0.3.0.7-dev
2017-05-18 12:28:28 -04:00
Nick Mathewson
b214c2c095
Merge branch 'maint-0.3.0'
2017-05-18 10:06:27 -04:00
Nick Mathewson
935cd77f62
Merge branch 'bug22252_029' into maint-0.3.0
2017-05-18 10:06:06 -04:00
Daniel Pinto
e04da2828d
Fixed error on BASEXX_NOPAD LEN and BUFSIZE macros #21872
2017-05-17 00:22:11 +01:00
Nick Mathewson
2ba58f275c
Fix crash when starting with LearnCircuitBuildTimeout 0.
...
Before we've set our options, we can neither call get_options() nor
networkstatus_get_latest_consensus().
Fixes bug 22252; bugfix on 4d9d2553ba
in 0.2.9.3-alpha.
2017-05-16 11:20:12 -04:00
Nick Mathewson
bbeba2412e
Fix resource leak in parse_consensus_request()
...
We were allocating diff_hash_in_url on some URLs, but not freeing it.
Fixes CID 1409669. Bug not in any released Tor.
2017-05-16 10:47:41 -04:00
Nick Mathewson
2ca827104d
Report deleted consensuses as NOT_FOUND rather than AVAILABLE
...
This bug happened because of a bogus pointer check in
consdiffmgr_find_consensus(), not in any released Tor.
Fixes CID 1409670. Good catch, Coverity!
2017-05-16 10:44:24 -04:00
Nick Mathewson
d29f494ec2
Merge branch 'maint-0.3.0'
2017-05-16 08:39:36 -04:00
Nick Mathewson
492f8a7c44
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-05-16 08:39:22 -04:00
Nick Mathewson
a7bcab2639
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-05-16 08:38:59 -04:00
teor
5b45d73293
Update fallback directory mirrors in May 2017
...
Replace the 177 fallbacks originally introduced in Tor 0.2.9.8 in
December 2016 (of which ~126 were still functional), with a list of
151 fallbacks (32 new, 119 existing, 58 removed) generated in May 2017.
Resolves ticket 21564.
2017-05-16 19:02:42 +10:00
Nick Mathewson
8324631dd9
bump version to 0.3.0.7
2017-05-15 18:25:07 -04:00
Nick Mathewson
a546487287
Merge branch 'maint-0.3.0'
2017-05-15 18:24:38 -04:00
Nick Mathewson
294d80044d
remove a variable I missed
2017-05-15 18:16:58 -04:00
Nick Mathewson
d3279d4304
Do not try to uncompress an empty spool
2017-05-15 18:13:38 -04:00
Nick Mathewson
460b923026
fix a memory leak
2017-05-15 18:13:20 -04:00
Nick Mathewson
e1b3c1bbec
Test fix: always set address in new_dir_conn()
2017-05-15 18:00:38 -04:00
Nick Mathewson
f9d8ade912
Dircache protocol version 2 adds support for diffs
2017-05-15 17:53:36 -04:00
Nick Mathewson
da6b00443c
Try not to mess up caches with the X-Or-Diff-From-Consensus header
2017-05-15 17:53:15 -04:00
Nick Mathewson
4531fdbbff
Split consensus-request parsing into a separate function
...
This ought to make the control flow a tiny bit more readable.
2017-05-15 17:51:53 -04:00
Nick Mathewson
eb3c8d376d
Prop140, continued: accept "diff/<HASH>" in URLs, per proposal.
2017-05-15 17:42:17 -04:00
Nick Mathewson
afef059795
Merge remote-tracking branch 'public/prop140_aftermath_cfg'
2017-05-15 17:26:47 -04:00
Nick Mathewson
dae1242532
Merge branch 'ahf_bugs_21667_2_squashed'
2017-05-15 17:22:12 -04:00
Alexander Færøy
9e3f304113
Fix dir_handle_get/... test-cases for prop#278 support.
...
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Nick Mathewson
65d9408448
dir_handle_get: repair two test cases, note the fixes for 3 others
2017-05-15 17:21:55 -04:00
Alexander Færøy
008194035f
Handle non-compressed requests gracefully.
...
This patch makes us use FALLBACK_COMPRESS_METHOD to try to fetch an
object from the consensus diff manager in case no mutually supported
result was found. This object, if found, is then decompressed using the
spooling system to the client.
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Alexander Færøy
8d730af0f7
Remove old consensus fetching code from handle_get_current_consensus().
...
This patch removes the calls to spooled_resource_new() when trying to
download the consensus. All calls should now be going through the
consdiff manager.
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Alexander Færøy
fade313ba3
Fix too wide line from make check-spaces
.
...
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Alexander Færøy
ae33deb91d
Check for best consensus when no consensusdiff was found.
...
This patch ensures that we use the current consensus in the case where
no consensus diff was found or a consensus diff wasn't requested.
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Nick Mathewson
7591518d16
Copy valid/fresh-until and signatories values into diffs.
2017-05-15 17:21:55 -04:00
Nick Mathewson
fd1190581d
Store fresh/valid-until and signatories values on all consensus objects.
2017-05-15 17:21:55 -04:00
Nick Mathewson
dcc533fb13
Implement functions to expose valid/fresh-until and voters
...
These still won't do anything till I get the values to be filled in.
Also, I changed the API a little (with corresponding changes in
directory.c) to match things that it's easier to store.
2017-05-15 17:21:55 -04:00
Nick Mathewson
2f06345db3
Move stub accessor functions a level higher, to consdiffmgr
2017-05-15 17:21:55 -04:00
Alexander Færøy
ef2a62b2ff
Fetch the current consensus from the conscache subsystem.
...
This patch changes handle_get_current_consensus() to make it read the
current consensus document from the consensus caching subsystem.
See: https://bugs.torproject.org/21667
2017-05-15 17:21:55 -04:00
Nick Mathewson
3b8888c544
Initialize the HS cache at startup
...
Failure to do this caused an assertion failure with #22246 . This
assertion failure can be triggered remotely, so we're tracking it as
medium-severity TROVE-2017-002.
2017-05-15 13:49:29 -04:00
Nick Mathewson
71a21256b0
Merge branch 'bug22245_024'
2017-05-15 11:46:55 -04:00
Nick Mathewson
85f75d617c
Add hs_test_helpers.h to noinst_HEADERS
2017-05-15 11:45:20 -04:00
Nick Mathewson
a6514b8a20
Fix a logic error in hibernate.c
...
Closes bug 22245; bugfix on 0.0.9rc1, when bandwidth accounting was
first introduced.
Found by Andrey Karpov and reported at https://www.viva64.com/en/b/0507/
2017-05-15 11:43:18 -04:00
Nick Mathewson
0e348720fc
Fix assertion to actually have a chance of failing
...
This assertion can only fail if we mess up some of our other code,
but let's try to get it right.
Closes 22244.
2017-05-15 11:27:12 -04:00
Nick Mathewson
1ec45bb546
Merge branch 'bug18100_029'
2017-05-15 11:19:44 -04:00