David Goulet
33c99cf565
hs-v2: Demote log warning to info when we don't have a consensus
...
Fixes #27040
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-14 12:04:01 -04:00
cypherpunks
5c47f725b0
rust/protover: delete ProtoSet::retain
...
As the comment noted, it was horribly inefficient.
2018-09-14 15:10:22 +00:00
cypherpunks
c613d55134
rust/protover: use .and_not_in() instead of .retain() in all_supported()
...
.retain() would allocating a Vec of billions of integers and check them
one at a time to separate the supported versions from the unsupported.
This leads to a memory DoS.
Closes ticket 27206. Bugfix on e6625113c9
.
2018-09-14 15:08:55 +00:00
cypherpunks
578f7326ed
rust/protover: add ProtoSet::and_not_in()
...
This is a way more efficient version of retain().
2018-09-14 15:08:54 +00:00
Nick Mathewson
8f689e0eb2
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-09-14 10:48:01 -04:00
Nick Mathewson
7e406ec40f
Merge branch 'maint-0.3.4'
2018-09-14 10:48:01 -04:00
Nick Mathewson
281854bab7
If options_act() fails, restore the previous value of global_options
...
Before 0.3.3.1-alpha, we would exit() in this case immediately. But
now that we leave tor_main() more conventionally, we need to make
sure we restore things so as not to cause a double free.
Fixes bug 27708; bugfix on 0.3.3.1-alpha.
2018-09-14 10:34:45 -04:00
Nick Mathewson
0e4fcd3996
Merge branch 'nss_27664'
2018-09-14 10:24:46 -04:00
Nick Mathewson
e43ae24e7d
Merge branch 'nss_27451'
2018-09-14 10:22:38 -04:00
Nick Mathewson
eaeb4c1082
Fix compilation of 27686 on master.
2018-09-14 10:22:11 -04:00
Nick Mathewson
994de7db53
Merge branch 'ticket27686_034' into x
2018-09-14 10:16:44 -04:00
Nick Mathewson
ab92f93421
Teach the OOM module to handle half-open stream info. #27686
2018-09-14 10:16:27 -04:00
Nick Mathewson
1ca03633fe
Tweak message; only log it on a relay.
2018-09-14 09:32:39 -04:00
Nick Mathewson
12320e7f3e
Merge remote-tracking branch 'neel/b21530'
2018-09-14 09:27:03 -04:00
Nick Mathewson
82b1282772
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-09-14 09:25:34 -04:00
Nick Mathewson
84e3ada71b
Merge remote-tracking branch 'onionk/rust-protokeyword1-035'
2018-09-14 09:25:31 -04:00
Nick Mathewson
bb012d7941
Merge remote-tracking branch 'tor-github/pr/329'
2018-09-14 09:22:23 -04:00
Nick Mathewson
b67f3b751a
Merge branch 'ticket27247'
2018-09-14 09:14:12 -04:00
Nick Mathewson
6e5e1be737
Make circuitmux ewma timing test more tolerant on 32bit osx
...
Since we use a 32-bit approximation for millisecond conversion here,
we can't expect so much precision.
Fixes part of bug 27139; bugfix on 0.3.4.1-alpha.
2018-09-14 08:40:12 -04:00
Nick Mathewson
f02e8b5944
Avoid integer overflow on fast 32-bit millisecond conversion.
...
Multiply-then-divide is more accurate, but it runs into trouble when
our input is above INT32_MAX/numerator. So when our value is too
large, do divide-then-multiply instead.
Fixes part of bug 27139; bugfix on 0.3.4.1-alpha.
2018-09-14 08:39:45 -04:00
Nick Mathewson
4eabc6db47
Use a slightly more accurate formula for OSX 32-bit msec conversion
...
We use an optimized but less accurate formula for converting coarse
time differences to milliseconds on 32-bit OSX platforms, so that we
can avoid 64-bit division.
The old numbers were off by 0.4%. The new numbers are off by .006%.
This should make the unit tests a bit cleaner, and our tolerances a
bit closer.
2018-09-14 08:35:06 -04:00
Nick Mathewson
88c9730817
Re-order includes to expose intptr_t to tor_api_internal.h
2018-09-14 07:11:37 -04:00
cypherpunks
bf9dc697fa
Merge branch 'rust-protokeyword1-034' into rust-protokeyword1-035
2018-09-14 02:33:59 +00:00
cypherpunks
574d59c640
Merge branch 'rust-protokeyword1' into rust-protokeyword1-034
2018-09-14 02:26:31 +00:00
Neel Chauhan
2c093c96b2
Add log message for Tor being non-exit by default
2018-09-13 21:50:06 -04:00
Nick Mathewson
7a0ff5beb2
In conditionvar_timeout test, wait for threads to timeout
...
Previously we just waited 200msec, which was not enough on slow/busy
systems.
Fixes bug 27073; bugfix on 0.2.6.3-alpha when the test was introduced.
2018-09-13 20:47:41 -04:00
Nick Mathewson
d8280216c0
Include torint.h in socketpair.c for intptr_t definition.
2018-09-13 17:54:26 -04:00
Nick Mathewson
92357a07bd
Fix a 32-bit off_t/size_t warning in crypto_rsa.c
...
Bug not in any released Tor.
2018-09-13 17:49:39 -04:00
Nick Mathewson
83b8a76f0c
Fix a shadowed-global warning in geoip.c
...
Bugfix on 5ab2110eb6b4ae9082430081cb2800018cf0dcd6; bug not in any
released Tor.
2018-09-13 17:48:33 -04:00
Nick Mathewson
b943721b2a
Merge branch 'bug27224_take2_squashed'
2018-09-13 16:43:06 -04:00
rl1987
1e77376e1a
Avoid calling node_get_all_orports() from node_is_a_configured_bridge()
...
All node_get_all_orports() does is allocate and return a smartlist
with at most two tor_addr_port_t members that match ORPort's of
node configuration. This is harmful for memory efficiency, as it
allocates the same stuff every time it is called. However,
node_is_a_configured_bridge() does not need to call it, as it
already has all the information to check if there is configured
bridge for a given node.
The new code is arranged in a way that hopefully makes each succeeding
linear search through bridge_list less likely.
2018-09-13 16:38:33 -04:00
Nick Mathewson
874eca6a8c
Add a test case with a matching ip but mismatched identity.
2018-09-13 16:38:33 -04:00
rl1987
9741921094
Unit tests for ticket 27224.
...
Since this is a refactoring ticket, these tests should pass before
and after the changes are made.
2018-09-13 16:25:14 -04:00
Nick Mathewson
85aba48a66
Merge branch 'bug26470_032'
2018-09-13 13:53:42 -04:00
Mike Perry
efa2075670
Ticket #27678 : Emit CIRC_BW events immediately for dropped cells.
...
We determine that a cell was dropped by inspecting CIRC_BW fields. If we did
not update the delivered or overhead fields after processing the cell, the
cell was dropped/not processed.
Also emit CIRC_BW events for cases where we decide to close the circuit in
this function, so vanguards can print messages about dropped cells in those
cases, too.
2018-09-13 17:45:45 +00:00
Mike Perry
80ffedd3ca
Control port call to emit a CIRC_BW event for a single circuit.
...
This commit only moves code. No functionality has been changed.
2018-09-13 17:44:56 +00:00
Nick Mathewson
2d05500a1e
Merge remote-tracking branch 'UntoSten/inform-about-conf-includes'
2018-09-13 13:35:59 -04:00
Nick Mathewson
787da5185c
Merge remote-tracking branch 'onionk/strcmpstart1'
2018-09-13 13:30:53 -04:00
Nick Mathewson
e8b81d7dc5
Merge branches 'bug27684' and 'bug27685'
2018-09-13 13:09:57 -04:00
Nick Mathewson
15596f6c0c
Fix a memory leak in tortls/openssl/try_to_extract_certs_from_tls
...
Since this is an "intrusive" test, it only shows up for openssl <1.1
This is a bugfix on 0.3.5.x; bug not in any released Tor.
2018-09-13 12:47:42 -04:00
Nick Mathewson
d28018ea1e
Fix a memory leak in tortls/openssl/context_new test.
...
Bugfix on 0.3.5.x; bugfix not on any released Tor.
2018-09-13 12:43:37 -04:00
cypherpunks
7c26f88fd7
rust/protover: validate unknown protocol names use only allowed characters
2018-09-13 16:33:58 +00:00
Nick Mathewson
9697c2da46
Merge branch 'maint-0.2.9' into maint-0.3.2
2018-09-13 11:46:04 -04:00
Nick Mathewson
3ddfd5ff25
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-09-13 11:46:04 -04:00
Nick Mathewson
8253428253
Merge branch 'maint-0.3.2' into maint-0.3.3
2018-09-13 11:46:04 -04:00
Nick Mathewson
d44eb16b23
Merge branch 'maint-0.3.4'
2018-09-13 11:46:04 -04:00
Nick Mathewson
75d6609eb1
Run crypto_prefork() before start_daemon().
...
Without this, RunAsDaemon breaks NSS.
Fixes bug 27664; bug not in any released Tor.
2018-09-13 08:58:28 -04:00
David Goulet
4b646e30d8
conn: Fix memleaks in retry_all_listeners
...
Fixes #27670
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-12 17:51:56 -04:00
Nick Mathewson
fed2c26e60
Report UNIX connection addresses that we opened correctly.
...
This is an aside on ticket27670.
2018-09-12 17:42:24 -04:00
Nick Mathewson
f308e81fa7
Merge branch 'maint-0.3.4'
2018-09-12 17:25:40 -04:00
Nick Mathewson
f8d5fb42a3
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-09-12 17:24:41 -04:00
Nick Mathewson
b4f20ec8a6
Merge remote-tracking branch 'tor-github/pr/280'
2018-09-12 16:13:23 -04:00
Nick Mathewson
9f5f67bda2
Use tor_tls_release_socket() to avoid double-closed sockets on NSS
...
Closes ticket 27451; bug not in any released Tor.
2018-09-12 11:32:15 -04:00
Nick Mathewson
ae5692994f
Add a tor_tls_release_socket() function.
...
This function tells the underlying TLS object that it shouldn't
close the fd on exit. Mostly, we hope not to have to use it, since
the NSS implementation is kludgey, but it should allow us to fix
2018-09-12 11:12:05 -04:00
Nick Mathewson
bfc847255a
Merge remote-tracking branch 'dgoulet/ticket27545_035_01'
2018-09-12 10:18:11 -04:00
cypherpunks
cb9fa3b04c
nodelist: fix docs for networkstatus_read_cached_consensus_impl
...
Fix on c12d2cb2dc
.
2018-09-12 14:13:03 +00:00
cypherpunks
ab91302fd0
nodelist: use strcmpstart() instead of strncmp()
...
in rend_parse_v2_service_descriptor.
Fix on c58675ca72
2018-09-12 14:03:06 +00:00
Nick Mathewson
19dbc385d5
Merge remote-tracking branch 'tor-github/pr/298'
2018-09-12 09:38:52 -04:00
Nick Mathewson
62743912bc
Merge branch 'pr278_squashed'
2018-09-12 09:06:35 -04:00
rl1987
7b27d98eae
Actually, just disable test_rebind.sh on Appveyor
2018-09-12 09:06:16 -04:00
rl1987
d30e47fd4e
Disable test_rebind.sh on Windows
2018-09-12 09:06:16 -04:00
rl1987
5a11670fca
Update/fix CI build
...
Update integration test to Python 3
2018-09-12 09:06:16 -04:00
rl1987
4811869d7a
Pick random ports in test_rebind.py
2018-09-12 09:06:16 -04:00
rl1987
d8157097b4
Always include socket rebinding code
2018-09-12 09:06:16 -04:00
rl1987
3f34fc921c
Tweak test_rebind.py for future-proofness
2018-09-12 09:06:16 -04:00
rl1987
762c27b907
Integration test for socket rebinding
...
squash! Integration test for socket rebinding
2018-09-12 09:06:16 -04:00
rl1987
fbd50f5994
Avoid mentioning ticket number in comments
2018-09-12 09:06:16 -04:00
rl1987
9f5431c79f
Comments/explanation for #17873
2018-09-12 09:06:16 -04:00
rl1987
74a474a2e7
Minor code cleanups
2018-09-12 09:06:16 -04:00
rl1987
27c868eff1
Log a notice *after* creating connection
2018-09-12 09:06:16 -04:00
rl1987
d548453abd
Log a notice when changing to/from wildcard IP address
2018-09-12 09:06:14 -04:00
rl1987
9f7ed1d04e
Always close old listeners in retry_all_listeners
2018-09-12 09:05:39 -04:00
rl1987
f04e0bd5d6
Refrain from compiling socket rebinding code on system that don't need it
2018-09-12 09:05:39 -04:00
rl1987
c99bb8b6ea
Try rebinding new listener after closing old one if first bind failed with EADDRINUSE
2018-09-12 09:05:36 -04:00
Nick Mathewson
73a37d1e54
Check waitpid return value and exit status in tinytest.c
...
It's possible for a unit test to report success via its pipe, but to
fail as it tries to clean up and exit. Notably, this happens on a
leak sanitizer failure.
Fixes bug 27658; bugfix on 0.2.2.4-alpha when tinytest was
introduced.
2018-09-12 08:57:18 -04:00
Nick Mathewson
8294c40c96
Merge remote-tracking branch 'tor-github/pr/318'
2018-09-12 08:12:19 -04:00
cypherpunks
03c4d0ab9c
rust/protover: fix check for overlapping ranges
...
Closes ticket 27649. Bugfix on e6625113c9
.
2018-09-12 02:47:59 +00:00
cypherpunks
b88a2f28ae
rust/protover: remove version zero from tests
...
This isn't legal according to dir-spec.txt.
We can write separate tests for it if the spec
is changed to make it legal.
2018-09-12 02:47:59 +00:00
cypherpunks
e9ef7d5ab4
test/protover: remove version zero from tests
...
This isn't legal according to dir-spec.txt.
We can write separate tests for it if the spec
is changed to make it legal.
2018-09-12 02:47:29 +00:00
Nick Mathewson
5a2374b074
Merge remote-tracking branch 'tor-github/pr/315'
2018-09-11 15:55:30 -04:00
Nick Mathewson
affbe376f9
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-09-11 15:53:06 -04:00
Mike Perry
ae1aea4cc4
Bug 25505: Check circuitmux queues before padding.
2018-09-11 15:53:03 -04:00
Nick Mathewson
2d0a6d7691
Merge remote-tracking branch 'mikeperry/bug25505'
2018-09-11 14:32:39 -04:00
Nick Mathewson
7852499812
Merge remote-tracking branch 'tor-github/pr/312'
2018-09-11 14:05:16 -04:00
Nick Mathewson
75ad1a1f2f
Merge remote-tracking branch 'onionk/doublevote1'
2018-09-11 13:16:49 -04:00
Nick Mathewson
328bcbf305
Merge remote-tracking branch 'tor-github/pr/313'
2018-09-11 12:23:21 -04:00
Nick Mathewson
a7d0cbd462
Merge remote-tracking branch 'tor-github/pr/314'
2018-09-11 12:19:13 -04:00
Nick Mathewson
8a873a5695
Merge branch 'maint-0.3.3' into maint-0.3.4
2018-09-11 12:04:56 -04:00
Nick Mathewson
8afc100cb5
Merge branch 'maint-0.3.2' into maint-0.3.3
2018-09-11 12:04:56 -04:00
Nick Mathewson
f741505642
Merge branch 'maint-0.3.4'
2018-09-11 12:04:56 -04:00
Nick Mathewson
3119cb5062
Merge branch 'maint-0.2.9' into maint-0.3.2
2018-09-11 12:04:55 -04:00
Suphanat Chunhapanya
57c82b74b4
hs-v3: Shuffle the list of authorized clients
...
This commit makes it that the authorized clients in the descriptor are in
random order instead of ordered by how they were read on disk.
Fixes #27545
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-11 11:23:49 -04:00
Nick Mathewson
e5601f14ed
Initialize 't' in ge25519_scalarmult_base_niels()
...
OSS-Fuzz's version of memorysanitizer can't tell that this value is
not going to be used unsafely.
2018-09-11 10:35:18 -04:00
Karsten Loesing
19429fac23
Update geoip and geoip6 to the September 6 2018 database.
2018-09-11 09:26:59 +02:00
Taylor Yu
617160895c
Defer reporting directory bootstrap progress
...
Existing cached directory information can cause misleadingly high
bootstrap percentages. To improve user experience, defer reporting of
directory information progress until at least one connection has
succeeded to a relay or bridge.
Closes ticket 27169.
2018-09-10 15:20:50 -05:00
rl1987
1ec54b3556
Bugfix: sizeof(socklen) doesn't make sense when calling connect()
...
Bugfix on 2f657a1416f2f81dd1be900269c4ae9bdb29f52d; bug not in
any Tor release.
2018-09-10 21:50:30 +03:00
Taylor Yu
687bf3ea64
Track bootstrap phase independently of progress
...
Track bootstrap phase (enumerated by bootstrap_status_t) independently
from the bootstrap progress (which can represent intermediate
progress). This allows control_event_bootstrap_problem() to avoid
doing a linear search through the bootstrap progress space to find the
current bootstrap phase.
2018-09-10 13:18:32 -05:00
Taylor Yu
5733d3f71f
Refactor control_event_bootstrap_core() more
...
Eliminate a few conditional expressions in
control_event_bootstrap_core() by overwriting the status parameter.
2018-09-10 13:18:32 -05:00
Taylor Yu
15c24d669f
Refactor control_event_bootstrap() somewhat
...
Move the mostly-invariant part of control_event_boostrap() into a
helper control_event_bootstrap_core(). The helper doesn't modify any
state beyond doing logging and control port notifications.
2018-09-10 13:18:32 -05:00
Taylor Yu
e2988e044d
Deindent much of control_event_bootstrap
2018-09-10 13:18:32 -05:00