Nick Mathewson
d3b9b5a3dd
Remove windows log_from_handle as unused.
...
This function was only used by PortForwardingHelper, which was
removed in 9df110cd72
. Its presence caused warnings on windows.
2018-04-12 12:38:46 -04:00
Nick Mathewson
037fb0c804
Merge branch 'maint-0.3.3'
2018-04-12 11:14:42 -04:00
Alexander Færøy
bd42367a1e
Make get_total_system_memory mockable.
...
This patch makes get_total_system_memory mockable, which allows us to
alter the return value of the function in tests.
See: https://bugs.torproject.org/24782
2018-04-12 10:51:45 -04:00
Nick Mathewson
6e467a7a34
Merge remote-tracking branch 'isis-github/bug25409'
2018-04-10 15:27:09 -04:00
Nick Mathewson
e0809ec5f5
Prefer 32-bit implementation for timing wheels on 32-bit systems.
...
This might make our timing-wheel code a tiny bit faster there.
Closes ticket 24688.
2018-04-09 15:21:10 -04:00
David Goulet
395fa0258d
compat: Fix unchecked return value from event_del()
...
Explicitly tell the compiler we don't care about it.
Coverity CID 1434156
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-04-09 14:12:45 -04:00
Isis Lovecruft
809f6fae84
refactor: Remove unnecessary #include "crypto.h"
throughout codebase.
...
* FIXES part of #24658 : https://bugs.torproject.org/24658
2018-04-06 22:49:18 +00:00
Isis Lovecruft
88190026b3
crypto: Alphabetise some #includes in /src/common/crypto*.
...
* FIXES part of #24658 : https://bugs.torproject.org/24658
2018-04-06 22:49:15 +00:00
Isis Lovecruft
64e6551b8b
crypto: Remove unnecessary includes from src/common/crypto.[ch]
...
* FIXES part of #24658 : https://bugs.torproject.org/24658
2018-04-06 22:49:13 +00:00
Isis Lovecruft
fe3aca1491
crypto: Refactor (P)RNG functionality into new crypto_rand module.
...
* ADD new /src/common/crypto_rand.[ch] module.
* ADD new /src/common/crypto_util.[ch] module (contains the memwipe()
function, since all crypto_* modules need this).
* FIXES part of #24658 : https://bugs.torproject.org/24658
2018-04-06 21:45:28 +00:00
Nick Mathewson
6a5f62f68f
Move responsibility for threadpool reply-handler events to workqueue
...
This change makes cpuworker and test_workqueue no longer need to
include event2/event.h. Now workqueue.c needs to include it, but
that is at least somewhat logical here.
2018-04-05 12:36:28 -04:00
Nick Mathewson
b3586629c9
Wrap the function we use to run the event loop.
...
Doing this lets us remove the event2/event.h header from a few more
modules, particularly in the tests.
Part of work on 23750.
2018-04-05 12:36:27 -04:00
Nick Mathewson
39cb04335f
Add wrappers for event_base_loopexit and event_base_loopbreak.
2018-04-05 12:36:05 -04:00
Nick Mathewson
f0d2733b46
Revise procmon.c to use periodic_timer_t
...
This removes its need to use event2/event.h, and thereby fixes
another instance of 23750.
2018-04-05 12:35:11 -04:00
Nick Mathewson
871ff0006d
Add an API for a scheduled/manually activated event in the mainloop
...
Using this API lets us remove event2/event.h usage from half a dozen
modules, to better isolate libevent. Implements part of ticket
23750.
2018-04-05 12:35:11 -04:00
Neel Chauhan
9df110cd72
Remove PortForwarding options
...
Signed-off-by: Isis Lovecruft <isis@torproject.org>
2018-04-04 00:19:33 +00:00
Nick Mathewson
f4bcf3f34c
Remove event2/event.h include from compat_libevent.h
...
Only one module was depending on this include (test_helpers.c), and
it was doing so incorrectly.
2018-04-02 11:11:31 -04:00
Nick Mathewson
2f872f9762
Merge remote-tracking branch 'hello71/bug25398'
2018-03-28 14:47:05 -04:00
Nick Mathewson
6317aa2cc0
Merge branch 'maint-0.3.3'
2018-03-28 07:50:47 -04:00
Nick Mathewson
d4bf1f6c8e
Add a paranoia check in string_is_valid_nonrfc_hostname()
...
The earlier checks in this function should ensure that components is
always nonempty. But in case somebody messes with them in the
future, let's add an extra check to make sure we aren't crashing.
2018-03-28 07:48:18 -04:00
Nick Mathewson
b504c854d3
Rename string_is_valid_hostname -> string_is_valid_nonrfc_hostname
...
Per discussion on 25055.
2018-03-28 07:42:27 -04:00
rl1987
09351c34e9
Don't strlen before checking for NULL
2018-03-28 07:39:03 -04:00
rl1987
a28e350cff
Tweak loop condition
2018-03-28 07:39:03 -04:00
rl1987
6b6d003f43
Don't explode on NULL or empty string
2018-03-28 07:39:03 -04:00
rl1987
ee1fca727c
Simplify hostname validation code
2018-03-28 07:39:03 -04:00
rl1987
dbb7c8e6fd
Validate hostnames with punycode TLDs correctly
2018-03-28 07:39:03 -04:00
rl1987
4413e52f9e
Improve handling of trailing dot
2018-03-28 07:39:03 -04:00
rl1987
6335db9fce
Refrain from including <ctype.h>
2018-03-28 07:39:03 -04:00
rl1987
5986589b48
Call strlen() once
2018-03-28 07:39:03 -04:00
rl1987
b0ba4aa7e9
Fix bracketed IPv6 string validation
2018-03-28 07:39:03 -04:00
rl1987
1af016e96e
Do not consider IP strings valid DNS names. Fixes #25055
2018-03-28 07:39:03 -04:00
rl1987
0e453929d2
Allow IPv6 address strings to be used as hostnames in SOCKS5 requests
2018-03-28 07:39:03 -04:00
Nick Mathewson
0eed0899cd
Merge branch 'bug24658-rm-curve25519-header' into bug24658-merge
2018-03-26 20:12:59 -04:00
Nick Mathewson
b5a6c03998
Merge branch 'maint-0.3.1' into maint-0.3.2
2018-03-26 10:29:29 -04:00
Nick Mathewson
068d092749
Merge branch 'maint-0.2.9' into maint-0.3.1
2018-03-26 10:29:29 -04:00
Nick Mathewson
c68bfc556c
Merge branch 'maint-0.3.3'
2018-03-26 10:29:29 -04:00
Nick Mathewson
33606405e3
Merge branch 'maint-0.3.2' into maint-0.3.3
2018-03-26 10:29:29 -04:00
Nick Mathewson
24abcf9771
Merge branch 'bug25399_squashed'
2018-03-22 08:49:43 -04:00
Alex Xu (Hello71)
946ed24ca5
Do not page-align mmap length. #25399
2018-03-22 08:47:37 -04:00
Nick Mathewson
9f93bcd16d
Remove sb_poll check: all poll() calls are ok.
2018-03-20 08:30:21 -04:00
Nick Mathewson
070eda5a21
Add the poll() syscall as permitted by the sandbox
...
Apparently, sometimes getpwnam will call this.
Fixes bug 25513.
2018-03-20 08:23:44 -04:00
Nick Mathewson
228b655935
Move rust-specific declarations outside of #else block
...
These declarations need to exist unconditionally, but they were
trapped inside an "#else /* !(defined(HAVE_SYSLOG_H)) */" block.
Fixes a travis regression caused by 23881; bug not in any released tor.
2018-03-19 19:18:23 -04:00
Nick Mathewson
d8893bc93c
Merge remote-tracking branch 'isis/bug23881_r1'
2018-03-19 17:20:37 -04:00
Nick Mathewson
338dbdab93
Merge branch 'maint-0.3.3'
2018-03-03 11:59:27 -05:00
Alexander Færøy
59a7b00384
Update tor.1.txt with the currently available log domains.
...
See: https://bugs.torproject.org/25378
2018-03-03 11:58:14 -05:00
Alex Xu (Hello71)
45d3b5fa4c
Remove uncompilable tor_mmap_file fallback. #25398
2018-03-02 09:51:53 -05:00
Isis Lovecruft
7759ac8df2
crypto: Remove crypto_rsa.h from crypto_digest.c.
...
* ADD include for "crypto_openssl_mgt.h" so that we have OpenSSL
defined SHA* types and functions.
* FIXES part of #24658 : https://bugs.torproject.org/24658#comment:30
2018-02-20 20:29:54 +00:00
Isis Lovecruft
3e9140e79a
crypto: Remove unnecessary curve25519 header from crypto_digest.h.
...
* ADD includes for "torint.h" and "container.h" to crypto_digest.h.
* ADD includes for "crypto_digest.h" to a couple places in which
crypto_digest_t was then missing.
* FIXES part of #24658 : https://bugs.torproject.org/24658#comment:30
2018-02-20 20:29:54 +00:00
Nick Mathewson
4438ef3288
Remove a bunch of other redundant #includes
...
Folks have found two in the past week or so; we may as well fix the
others.
Found with:
\#!/usr/bin/python3
import re
def findMulti(fname):
includes = set()
with open(fname) as f:
for line in f:
m = re.match(r'^\s*#\s*include\s+["<](\S+)[>"]', line)
if m:
inc = m.group(1)
if inc in includes:
print("{}: {}".format(fname, inc))
includes.add(m.group(1))
import sys
for fname in sys.argv[1:]:
findMulti(fname)
2018-02-20 10:14:15 -05:00
Nick Mathewson
5199b9b337
Use autoconf to check for optional zstd functionality.
...
Fixes a bug in our zstd-static code. Bug not in any released
version of Tor.
2018-02-18 16:19:43 -05:00
Fernando Fernandez Mancera
0fad49e1c4
Move crypto_pk_obsolete_* functions into RSA module.
...
We moved the crypto_pk_obselete_* functions into crypto_rsa.[ch] because they fit
better with the RSA module.
Follows #24658 .
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2018-02-16 18:23:21 +01:00
Fernando Fernandez Mancera
541b6b2433
Remove useless included files in crypto_rsa.[ch].
...
Follows #24658 .
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2018-02-16 17:49:58 +01:00
Nick Mathewson
bd71e0a0c8
Merge branch 'maint-0.3.1' into maint-0.3.2
2018-02-16 09:54:13 -05:00
Nick Mathewson
2bcd264a28
Merge branch 'maint-0.2.9' into maint-0.3.1
2018-02-16 09:48:11 -05:00
Nick Mathewson
cb92d47dec
Merge remote-tracking branch 'dgoulet/ticket24902_029_05' into maint-0.2.9
2018-02-16 09:41:06 -05:00
Nick Mathewson
bbc73c5d1c
Whoops. 256 was not big enough.
2018-02-16 09:40:29 -05:00
Nick Mathewson
a34fc1dad2
Allow checkpointing of non-sha1 digests.
...
This is necessary because apparently v3 rendezvous cpath hops use
sha3, which I had forgotten.
Bugfix on master; bug not in any released Tor.
2018-02-16 09:25:50 -05:00
Nick Mathewson
5a9ada342f
tor_zstd_format_version shouldn't be built when !HAVE_ZSTD
...
Fixes bug 25276; bugfix not in any released Tor.
2018-02-16 08:06:01 -05:00
Fernando Fernandez Mancera
f9f0dd5b9a
Move the pk-digest functions into crypto_rsa.[ch].
...
We moved the crypto_pk_* digest functions into crypto_rsa.[ch] because they fit
better with the RSA module.
Follows #24658 .
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2018-02-16 12:04:22 +01:00
Nick Mathewson
8da6bfa5de
Merge branch 'bug24914'
2018-02-15 20:53:50 -05:00
Nick Mathewson
a1dd8afc16
Merge branch '25162_zstd_static'
2018-02-15 20:28:07 -05:00
Nick Mathewson
3c8a481599
Merge branch 'bug18105'
2018-02-15 20:17:31 -05:00
Nick Mathewson
3e2b48f8b4
Merge branch 'bug24484_squashed'
2018-02-15 20:13:53 -05:00
Nick Mathewson
4dc228e35b
Remove workaround code for systems where free(NULL) is busted.
...
Add an autoconf test to make sure we won't regret it.
Closes ticket 24484.
2018-02-15 20:13:44 -05:00
Nick Mathewson
ef164346d4
Merge remote-tracking branch 'dgoulet/ticket24902_029_05'
2018-02-13 08:47:06 -05:00
Nick Mathewson
1555946e20
Have tor_addr hashes return a randomized hash for AF_UNSPEC.
...
We don't expect this to come up very much, but we may as well make
sure that the value isn't predictable (as we do for the other
addresses) in case the issue ever comes up.
Spotted by teor.
2018-02-12 11:14:36 -05:00
Nick Mathewson
99fbbc6c47
Fix a typo in an address_set.c comment.
2018-02-12 11:14:34 -05:00
Nick Mathewson
b2c4d4e7fa
Merge branch 'maint-0.2.9' into maint-0.3.1
2018-02-11 18:11:04 -05:00
Nick Mathewson
84c13336c4
Merge remote-tracking branch 'public/bug24198_029' into maint-0.2.9
2018-02-11 18:10:59 -05:00
Nick Mathewson
8939eaf479
Merge branch 'maint-0.2.9' into maint-0.3.1
2018-02-11 18:09:35 -05:00
Nick Mathewson
848ba26c18
Merge branch 'ticket24315_029' into maint-0.2.9
2018-02-11 18:07:37 -05:00
Nick Mathewson
684d57fe8a
Merge branch 'maint-0.3.1' into maint-0.3.2
2018-02-11 17:00:52 -05:00
Nick Mathewson
eccef6ba60
Merge branch 'maint-0.2.9' into maint-0.3.1
2018-02-11 16:51:56 -05:00
Nick Mathewson
5dc785ceef
Merge remote-tracking branch 'public/bug21074_029' into maint-0.2.9
2018-02-11 16:51:53 -05:00
Nick Mathewson
7aa94f7441
fix compilation.
2018-02-11 16:16:58 -05:00
Nick Mathewson
627974b02e
Merge branch 'bug25120'
2018-02-11 16:10:58 -05:00
Alexander Færøy
14c47a0b5c
Lower log-level in different error conditions in entropy selection.
...
This patch lowers the log-level from warning to info in the cases where
we are going to attempt another method as entropy source to hopefully
make the user feel less concerned.
See: https://bugs.torproject.org/25120
2018-02-11 16:10:50 -05:00
Nick Mathewson
4de20d1754
Merge branch 'maint-0.3.1' into maint-0.3.2
2018-02-10 16:09:01 -05:00
Nick Mathewson
1df701c082
Merge branch 'maint-0.3.2'
2018-02-10 16:09:01 -05:00
Nick Mathewson
86583ad78e
Merge branch 'maint-0.2.9' into maint-0.3.1
2018-02-10 16:09:00 -05:00
Roger Dingledine
99666dc6c4
whitespace and typo cleanups
2018-02-09 17:05:20 -05:00
Nick Mathewson
abdf2a6f7f
Merge remote-tracking branch 'dgoulet/ticket24902_029_05'
2018-02-09 12:08:12 -05:00
David Goulet
112638921b
Merge branch 'ticket25183_029_01' into ticket24902_029_05
2018-02-08 16:56:21 -05:00
Nick Mathewson
0640da4269
Function to add an ipv4 address to an address_set
...
This is a convenience function, so callers don't need to wrap
the IPv4 address.
2018-02-08 14:38:14 -05:00
Nick Mathewson
46bd2aed91
Add an address-set backend using a bloom filter.
...
We're going to need this to make our anti-DoS code (see 24902) more
robust.
2018-02-08 14:38:11 -05:00
Roger Dingledine
a7440d9c9d
more fixes for typos, grammar, whitespace, etc
...
some of these ought to have been noticed by the "misspell" tool,
so if anybody is debugging it, here are some bug reports :)
2018-02-07 12:22:29 -05:00
Nick Mathewson
86498e5aa5
Fix wide lines from typo-fix patch.
2018-02-07 10:46:05 -05:00
Deepesh Pathak
ca6682f3f8
Fix spelling mistakes corresponding to ticket #23650
2018-02-07 10:41:57 -05:00
Nick Mathewson
a03488954c
Add configure option to control ZSTD_STATIC_LINKING_ONLY
2018-02-06 11:58:05 -05:00
Nick Mathewson
a77a366b87
Warn on zstd header/library version mismatch
...
If we're going to potentially degrade performance in this case, we
may as well tell people so.
2018-02-06 11:05:07 -05:00
Nick Mathewson
f98cb5d355
Use "static-only" zstd functions to estimate memory usage.
...
These should provide better and more accurate results when we can
use them; we fall back to the old approach when we can't.
2018-02-06 11:05:07 -05:00
Nick Mathewson
358b609e9d
Enable (safe) use of zstd static-only APIs
...
We'll only use these when the compile-time version and the run-time
version of the zstd library match. Part of ticket 25162.
2018-02-06 11:05:07 -05:00
Fernando Fernandez Mancera
60b8e088c3
Add crypto_digest.[ch] to include.am
...
Included crypto_digest.[ch] into include.am in order to solve a compiling
issue. Also EOF line in crypto_digest.c added.
Follows #24658 .
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2018-02-03 17:13:04 +01:00
Fernando Fernandez Mancera
61c7ec29f1
Include crypto_digest.h in order to solve dependency issues.
...
Included crypto_digest.h in some files in order to solve xof+digest module
dependency issues. Removed crypto.h where it isn't needed anymore.
Follows #24658 .
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2018-02-03 17:04:36 +01:00
Fernando Fernandez Mancera
202d27af71
Add xof functions into crypto_digest.[ch]
...
Added xof functions and operations into xof+digest module.
Follows #24658 .
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2018-02-03 17:04:29 +01:00
Fernando Fernandez Mancera
f8b1493681
Refactor crypto.[ch] into smaller xof+digest module.
...
Add two new files (crypto_digest.c, crypto_digest.h) as new module of
crypto.[ch]. This new module includes all functions and dependencies related
to digest and xof operations. Those have been removed from crypto.[ch].
Follows #24658 .
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2018-02-03 15:27:55 +01:00
Alexander Færøy
a2990081d5
Slightly different wording for error cases around entropy source selection.
...
This patch makes the wording around error cases for selecting an entropy
source in Tor slightly more verbose. We also let the user know when
something goes wrong that we are trying out a fallback method instead.
See: https://bugs.torproject.org/25120
2018-02-01 21:32:32 +01:00
Nick Mathewson
51377a917e
Merge branch 'bug24658-rsa_squashed'
2018-02-01 12:10:07 -05:00
Fernando Fernandez Mancera
bdaf7ebc26
Add crypto_rsa.[ch] to include.am
...
Included crypto_rsa.[ch] into include.am in order to resolve a compiling issue.
Follows #24658 .
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
2018-02-01 12:09:36 -05:00
Fernando Fernandez Mancera
3812319bb1
Tweaks into functions and variables in crypto_rsa.[ch]
...
crypto_get_rsa_padding_overhead() and crypto_get_rsa_padding() are
not static inline anymore in order to split the crypto_rsa module
from crypto.[ch].
Also included necessary modules in order to solve dependency issues.
Also made two functions in crypto.c use crypto_pk_asn1_encdoe()
instead of reaching into the crypto_pk_t struct.
2018-02-01 12:08:54 -05:00