Nick Mathewson
f2e23d5ad6
Fix a huge number of leaks in test_config.c
...
I no longer see asan reporting memory leaks in the unit tests.
2016-02-24 15:44:40 -05:00
Nick Mathewson
a3f764ea69
Fix memory leaks in routerlist/pick_directory_server_impl test
2016-02-24 15:13:29 -05:00
Nick Mathewson
ba0ddd7467
Fix a leak in test_have_enough_mem_for_dircache
2016-02-24 15:06:12 -05:00
Nick Mathewson
73c433a48a
Remove the freelist from memarea.c
...
This is in accordance with our usual policy against freelists,
now that working allocators are everywhere.
It should also make memarea.c's coverage higher.
I also doubt that this code ever helped performance.
2016-02-24 14:32:09 -05:00
teor (Tim Wilson-Brown)
9ab1037de1
Silence clang-scan warnings in ed25519_donna
2016-02-24 23:24:01 +08:00
Nick Mathewson
1318c1611f
Another clang+_FORTIFY_SOURCE issue
...
There was a parenthesis issue in test_util that clang found
confusing. This part was only in master.
Closes issue 14821.
2016-02-23 14:06:45 -05:00
Nick Mathewson
a7f303a481
Merge branch 'maint-0.2.7'
2016-02-23 14:05:54 -05:00
Nick Mathewson
67e5d49d8a
Make clang asan work with FORTIFIED_SOURCE again.
...
Short version: clang asan hates the glibc strcmp macro in
bits/string2.h if you are passing it a constant string argument of
length two or less. (I could be off by one here, but that's the
basic idea.)
Closes issue 14821.
2016-02-23 14:05:34 -05:00
Nick Mathewson
94c8f3605f
Replace two instances of N_DIGEST_ALGORITHMS.
...
These should have been N_COMMON_DIGEST_ALGORITHMS.
Fixes bug 18380; bug not in any released Tor.
2016-02-23 12:42:10 -05:00
Nick Mathewson
d3af4f4e43
Merge remote-tracking branch 'arma/bug16825'
2016-02-23 10:45:39 -05:00
Nick Mathewson
e88686cb2c
Merge remote-tracking branch 'teor/bug18348-v2'
2016-02-23 07:36:56 -05:00
Nick Mathewson
48c1c028ca
Merge branch 'bug18296_squashed'
2016-02-23 07:32:18 -05:00
Nick Mathewson
21f72990db
Simple fix for integer overflow in smartlist_heapify.
2016-02-23 07:31:58 -05:00
Nick Mathewson
882e0fbd76
Merge branch 'bug17795'
2016-02-23 07:25:12 -05:00
Nick Mathewson
e202f3a1ca
Fix an erroneous renaming
...
Did you know that crypto_digest_all is a substring of
crypto_digest_alloc_bytes()? Hence the mysterious emergence of
"crypto_common_digestsoc_bytes".
Next time I should use the \b assertion in my regexen.
Spotted by Mike.
2016-02-23 07:22:53 -05:00
Nick Mathewson
b3534dfc5e
Add missing check to test_address_get_if_addrs_ifaddrs. Bug 18378
2016-02-23 07:17:00 -05:00
Andrea Shepard
cda2381789
Appease make check-spaces
2016-02-23 05:07:29 +00:00
Nick Mathewson
e019e11e61
Another memory leak in the tests
2016-02-22 16:20:11 -05:00
Nick Mathewson
4cc50ee805
Small fixup on last fix to test leaks
2016-02-22 16:16:56 -05:00
Nick Mathewson
041d6482db
Fix a bunch of memory leaks in the unit tests
2016-02-22 16:14:03 -05:00
Nick Mathewson
bb431ad3df
Add a missing free in parsing an :auto port
...
Fixes bug 18374; bugfix on 0.2.3.3-alpha.
2016-02-22 15:51:43 -05:00
Nick Mathewson
ef42c00cf0
asan does not like TO_CONN(NULL)
2016-02-22 15:45:37 -05:00
cypherpunks
1e9950847c
Define O_NOFOLLOW on platforms that do not have it
...
Fixes #18339
2016-02-22 15:28:24 -05:00
Nick Mathewson
a508119169
Update to trunnel 1.4.4 to fix 18373
2016-02-22 14:19:29 -05:00
Nick Mathewson
2240aa1269
Merge branch 'bug16023_028_01_squashed'
2016-02-22 13:17:58 -05:00
Nick Mathewson
60efce445b
Enable ed25519 collator in voting.
...
Previously, I had left in some debugging code with /*XXX*/ after it,
which nobody noticed. Live and learn! Next time I will use /*XXX
DO NOT COMMIT*/ or something.
We need to define a new consensus method for this; consensus method
21 shouldn't actually be used.
Fixes bug 17702; bugfix on 0.2.7.2-alpha.
2016-02-22 10:07:42 -05:00
Roger Dingledine
e3eaee1d2c
avoid redundant bootstrap events if the number of descs we just fetched is 0
2016-02-22 03:02:01 -05:00
Roger Dingledine
56c5e282a7
avoid extra LOG_NOTICE for every new microdesc batch
...
We already write out bootstrapping progress (see bug 9927) per new
microdesc batch. There's no need to do a full "I learned some more
directory information, but not enough to..." line each time too.
2016-02-22 02:55:42 -05:00
Roger Dingledine
43193ec888
refactor directory_info_has_arrived so we can quiet the logs
...
no actual behavior changes
2016-02-22 02:54:32 -05:00
Roger Dingledine
c6952f65ef
new microdescs mean progress towards bootstrapping
...
Now, when a user who has set EntryNodes finishes bootstrapping, Tor
automatically repopulates the guard set based on this new directory
information. Fixes bug 16825; bugfix on 0.2.3.1-alpha.
2016-02-22 02:47:57 -05:00
Roger Dingledine
a9993a92fb
fix two typos in comments
2016-02-22 02:34:50 -05:00
teor (Tim Wilson-Brown)
d359cfab13
Update unit tests for fascist_firewall_choose_address*
...
Check that clients, bridge clients, and relays choose addresses
as expected.
2016-02-21 00:00:40 +11:00
teor (Tim Wilson-Brown)
be16c16bda
Downgrade directory preference warning to info level
2016-02-20 23:42:08 +11:00
teor (Tim Wilson-Brown)
c281c03654
If both IPv4 and IPv6 addresses could be used, choose one correctly
...
If there is a node, use node_ipv6_or/dir_preferred().
If there is no node, use fascist_firewall_prefer_ipv6_or/dirport().
2016-02-20 23:40:37 +11:00
teor (Tim Wilson-Brown)
4afb107278
Refactor IPV6_OR_LOOKUP into fascist_firewall_choose_address_rs
...
It's only used once now, so having it as a macro is unhelpful.
2016-02-20 23:30:23 +11:00
teor (Tim Wilson-Brown)
a4853f1bc1
Make some fascist_firewall_choose_address* functions static
2016-02-20 23:30:17 +11:00
teor (Tim Wilson-Brown)
a4eddfff66
Refactor fascist_firewall_allows_address without changing behaviour
2016-02-20 20:01:51 +11:00
teor (Tim Wilson-Brown)
25543387ed
Ensure relays must use IPv4, and can use IPv6
...
A mistake in previous refactoring had relays using IPv4 and IPv6.
2016-02-20 19:28:51 +11:00
David Goulet
13a8571834
Add onion address to the HS_DESC UPLOADED event
...
Fixes #16023
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2016-02-17 15:30:46 -05:00
Nick Mathewson
5494938467
Set or_ap/dir_ap.port on the invalid addr case. Bug in no released Tor. CID 1353178 and 1353179.
2016-02-16 12:58:02 -05:00
Nick Mathewson
31c96a3699
Fix a NULL dereference on unit test failure. CID 1353177.
2016-02-16 12:55:41 -05:00
Nick Mathewson
5cd6c577df
Merge branch 'bug17852_revised'
2016-02-16 11:34:06 -05:00
Jeremy
f48c607fd9
Harden check_private_dir() to remove any potential race.
...
Remove any potential race between stat() and chmod().
Replace stat() with fstat().
Replace chmod() with fchmod()
2016-02-16 11:21:46 -05:00
Jeremy
4e19133dcc
src/common/util.c:expand_filename() - Perhaps use GetFullPathName() as a form of input validation on the filename argument.
2016-02-16 11:21:45 -05:00
Nick Mathewson
a874d66ea9
Handle the case where tor-gencert gets a passphrase with no NL
...
Closes ticket 17443.
2016-02-12 08:54:09 -05:00
Nick Mathewson
1f679d4ae1
Fix all doxygen warnings other than "X is not documented"
2016-02-11 22:06:44 -05:00
Nick Mathewson
fed8c5199a
Merge branch 'check_log_mutex_uncherrypicked'
2016-02-11 13:41:31 -05:00
teor (Tim Wilson-Brown)
a7a98e27ea
Initialise logging before trying to use it in unit tests
2016-02-11 13:41:25 -05:00
Nick Mathewson
7788ee43e5
Merge branch 'maint-0.2.7'
2016-02-11 13:04:43 -05:00
Nick Mathewson
be6174f8f6
Merge branch 'maint-0.2.6' into maint-0.2.7
2016-02-11 13:01:46 -05:00
Nick Mathewson
740421af19
Merge branch 'maint-0.2.5' into maint-0.2.6
2016-02-11 13:00:25 -05:00
Nick Mathewson
ce289e2cb5
Merge branch 'maint-0.2.4' into maint-0.2.5
2016-02-11 12:55:40 -05:00
Nick Mathewson
ad95d64fec
Merge branch 'bug18162_024' into maint-0.2.4
2016-02-11 12:55:25 -05:00
Nick Mathewson
c2fd648469
Make ensure_capacity a bit more pedantically correct
...
Issues noted by cypherpunks on #18162
2016-02-11 12:54:52 -05:00
Nick Mathewson
838d4dee12
make check-spaces
2016-02-11 12:50:55 -05:00
Nick Mathewson
2b5ff52594
Merge branch 'feature17840-v11-tests_truncated'
2016-02-11 12:45:51 -05:00
Nick Mathewson
ba2be81fc3
Merge remote-tracking branch 'teor/feature17840-v11-merged-v2'
2016-02-11 12:20:20 -05:00
Nick Mathewson
cae59b913f
Rename circuit_about_to_free_{terminal -> atexit}
2016-02-11 12:15:12 -05:00
Nick Mathewson
7f9ac4957c
Split a long line
2016-02-11 12:13:02 -05:00
Nick Mathewson
bc7a5eeeda
Merge remote-tracking branch 'weasel/bug18261'
2016-02-11 12:12:02 -05:00
Nick Mathewson
c0a6c34652
Merge remote-tracking branch 'teor/bug18208'
2016-02-10 16:32:05 -05:00
Nick Mathewson
162d2022e1
Merge branch 'bug17682_squashed'
2016-02-10 15:50:28 -05:00
Nick Mathewson
601b41084a
Bulletproof the safe_timer_diff function
...
Originally it can overflow in some weird cases. Now it should no longer
be able to do so.
Additionally, limit main's timers to 30 days rather than to 38 years;
we don't actually want any 38-year timers.
Closes bug 17682.
2016-02-10 15:49:11 -05:00
Nick Mathewson
ee75c02691
Merge remote-tracking branch 'andrea/bug18116'
2016-02-10 15:42:11 -05:00
Nick Mathewson
69c47ab5fd
Merge remote-tracking branch 'sebastian/bug18242'
2016-02-10 15:38:52 -05:00
Nick Mathewson
4dc8dc4b89
Merge remote-tracking branch 'public/bug18184'
2016-02-10 15:36:48 -05:00
Nick Mathewson
a8d6989589
Whitespace fixes
2016-02-10 15:35:46 -05:00
Nick Mathewson
9746aed2ba
Another automated rename.
...
Also simplify crypto_common_digests() to have no loop.
2016-02-10 15:32:12 -05:00
Nick Mathewson
8a4bba06d2
Rename crypto_digest_all, and digests_t.
...
They are no longer "all" digests, but only the "common" digests.
Part of 17795.
This is an automated patch I made with a couple of perl one-liners:
perl -i -pe 's/crypto_digest_all/crypto_common_digests/g;' src/*/*.[ch]
perl -i -pe 's/\bdigests_t\b/common_digests_t/g;' src/*/*.[ch]
2016-02-10 15:28:19 -05:00
Andrea Shepard
ae0f858602
Properly detach circuits from cmuxes when calling circuit_free_all() on shutdown again
2016-02-10 05:35:03 +00:00
Andrea Shepard
3014bfb61b
Appease make check-spaces
2016-02-10 02:20:59 +00:00
Nick Mathewson
92048a1b43
Add missing consts; my fault.
2016-02-08 08:34:18 -05:00
Nick Mathewson
9f6589d65a
Merge branch 'decorated_ipv6_directory_send_command_squashed'
2016-02-08 08:33:28 -05:00
Malek
061586e36c
decorated ipv6 address for directory send command
2016-02-08 08:33:18 -05:00
Nick Mathewson
d004f06830
fix wide lines, use more locals.
2016-02-08 08:31:31 -05:00
Harini Kannan
c30be5a82d
Using router_get_my_routerinfo()
2016-02-07 16:07:35 -05:00
Peter Palfrader
42e131e9ac
Fix a segfault during startup
...
If unix socket was configured as listener (such as a ControlSocket or a
SocksPort unix socket), and tor was started as root but not configured
to switch to another user, tor would segfault while trying to string
compare a NULL value. Fixes bug 18261; bugfix on 0.2.8.1-alpha. Patch
by weasel.
2016-02-06 22:17:02 +01:00
Nick Mathewson
2d879bd39f
Document port_out argument to tor_addr_from_sockaddr
2016-02-06 15:34:47 -05:00
Nick Mathewson
0f5f6b8a41
Merge remote-tracking branch 'yawning/bug18221'
2016-02-06 15:30:22 -05:00
Nick Mathewson
b645e2f2b0
Merge remote-tracking branch 'alec/dead_code_removal'
2016-02-06 15:08:49 -05:00
Alec Heifetz
6852868b4a
Removed dead code in main.c
2016-02-06 14:41:31 -05:00
Nick Mathewson
31a27729b9
Fix spaces.
2016-02-06 14:00:24 -05:00
Nick Mathewson
03371e3d3c
Merge branch 'cleaned_aes_crypt'
2016-02-06 13:54:09 -05:00
Malek
a9cd291753
Removed aes_crypt, left only aes_crypt_inplace. Removed should_use_openssl_CTR, was used for openssl 1.0.0 bug.
2016-02-06 13:38:11 -05:00
Hassan Alsibyani
edd93f9de8
changing output of crypto_cipher_crypt_inplace from int to void
2016-02-06 12:14:39 -05:00
Sebastian Hahn
55d6fd27cb
Fix the --disable-asserts-in-tests configure option
2016-02-05 14:40:07 +01:00
Nick Mathewson
1f5cdf2b6c
Merge branch 'maint-0.2.7'
2016-02-05 08:13:47 -05:00
Nick Mathewson
d920cbb82c
Merge branch 'maint-0.2.6' into maint-0.2.7
2016-02-05 08:13:35 -05:00
Nick Mathewson
44ad3be221
Merge branch 'maint-0.2.5' into maint-0.2.6
2016-02-05 08:13:24 -05:00
Nick Mathewson
f06d9a9cef
Merge branch 'maint-0.2.4' into maint-0.2.5
2016-02-05 08:13:13 -05:00
teor (Tim Wilson-Brown)
add8acf428
Avoid calling log functions in logv when SMARTLIST_DEBUG is defined
2016-02-05 14:14:17 +11:00
teor (Tim Wilson-Brown)
db72b509d1
Check that the log mutex is initialised before trying to lock or unlock it
2016-02-05 14:08:58 +11:00
Nick Mathewson
6149703089
Bump to 0.2.8.1-alpha-dev
2016-02-04 18:24:20 -05:00
Nick Mathewson
af116081f9
Make the no-assertions-during-coverage check into a configure option
...
Closes ticket 18242.
The rationale here is that I like having coverage on by default in my
own working directory, but I always want assertions turned on unless
I'm doing branch coverage specifically.
2016-02-04 12:51:52 -05:00
Nick Mathewson
c595f6d25e
Add an assertion to tor_libevent_get_base()
...
Closes ticket 18241.
2016-02-04 12:37:00 -05:00
Nick Mathewson
1bac468882
Fix two problems in the 0.2.8.x unit tests
...
1. We were sometimes using libevent uninitialized, which is Not Allowed.
2. The malformed-PTR dns test was supposed to get a -1 output... but
the test was wrong, since it forgot that in-addr.arpa addresses
are in reverse order.
Bugs not in any released tor.
2016-02-04 12:30:48 -05:00
Nick Mathewson
5da517e689
Bump version. (This is not yet the release.)
2016-02-04 10:07:06 -05:00
Karsten Loesing
d5ac79e056
Update geoip and geoip6 to the February 2 2016 database.
2016-02-04 08:53:24 +01:00
Nick Mathewson
fa52b6f075
Make tortls unit tests pass with LibreSSL.
...
Part of the fix for 17921.
2016-02-03 11:31:57 -05:00
Nick Mathewson
c1c3e45eab
Make crypto/rng_engine test pass on libressl. Bug not in any released tor.
2016-02-03 11:18:16 -05:00
Nick Mathewson
27582325dc
Make Tor build happily with OpenSSL master and libressl.
...
Also tested with 1.0.0t and 1.0.2f.
Closes ticket 19784.
Closes most of 17921. (Still need to make some tests pass.)
2016-02-03 11:13:12 -05:00
teor (Tim Wilson-Brown)
c213f277cd
Make bridge clients prefer the configured bridge address
...
When ClientPreferIPv6ORPort is auto, bridges prefer the configured
bridge ORPort address. Otherwise, they use the value of the option.
Other clients prefer IPv4 ORPorts if ClientPreferIPv6ORPort is auto.
When ClientPreferIPv6DirPort is auto, all clients prefer IPv4 DirPorts.
2016-02-03 23:56:19 +11:00
teor (Tim Wilson-Brown)
b316c87bc9
Make bridge clients prefer the configured bridge address
...
When ClientPreferIPv6ORPort is auto, bridges prefer the configured
bridge ORPort address. Otherwise, they use the value of the option.
Other clients prefer IPv4 ORPorts if ClientPreferIPv6ORPort is auto.
When ClientPreferIPv6DirPort is auto, all clients prefer IPv4 DirPorts.
2016-02-03 23:52:39 +11:00
Yawning Angel
c625ab9f5a
Validate the DH parameters for correctness.
...
We use sensible parameters taken from common sources, and no longer
have dynamic DH groups as an option, but it feels prudent to have
OpenSSL validate p and g at initialization time.
2016-02-02 22:03:48 +00:00
teor (Tim Wilson-Brown)
92b1c3b604
Update ExitPolicy when interface addresses change
...
Tor exit relays reject local interface addresses in their exit policy.
Make sure those policies are updated when interface addresses change.
2016-02-02 15:05:59 +11:00
Nick Mathewson
b860f82d56
Treat bt_test.py failures as "SKIP" on freebsd.
...
Closes #18204 .
2016-02-01 14:11:45 -05:00
Nick Mathewson
c6fa55d2da
Bitwise negate is ~, not !.
...
Spotted by coverity; bug in tests only, not in any released Tor.
This is CID 1351128
2016-02-01 13:12:58 -05:00
Nick Mathewson
7631cffbcc
Fix warnings from check-spaces
2016-02-01 10:24:13 -05:00
Nick Mathewson
ac7e43d30a
Redux: don't expect unix sockets to be accepted on windows
2016-02-01 10:21:11 -05:00
Nick Mathewson
49442b5e67
Don't expect unix sockets to be accepted on Windows
...
Fixes failures in test_config.c; bug not in any released tor.
2016-02-01 09:57:54 -05:00
Nick Mathewson
f4ac44c9f2
Merge branch 'options_validate_second_round_cleaned'
2016-02-01 09:52:11 -05:00
teor (Tim Wilson-Brown)
e3da5ad6e3
Replace incorrect use of snprintf in unit tests with tor_snprintf
...
This avoids a potential out of bounds write.
2016-02-01 09:50:43 -05:00
teor (Tim Wilson-Brown)
f7b2ae91e9
Make all unit tests independent of log message order and count
2016-02-01 09:50:43 -05:00
teor (Tim Wilson-Brown)
dbb5819e96
Report malformed options in options_validate unit tests
2016-02-01 09:50:42 -05:00
Ola Bini
fe92e9bb96
Add a helper to search for strings in the log, and change option tests to use this helper instead of looking at specific indices in the log list
2016-02-01 09:50:42 -05:00
Nick Mathewson
4cd93a6a59
Merge branch 'maint-0.2.7'
...
(We already had a fix for the address test freebsd issues)
2016-02-01 09:41:45 -05:00
Nick Mathewson
7d1fe7c9e7
Try to fix address tests on FreeBSD
...
In jails, there is not always a localhost.
Bugfix not on any released Tor.
2016-02-01 09:38:31 -05:00
teor (Tim Wilson-Brown)
1dae4dac12
Add unit tests for ClientUseIPv[4,6] and ClientPreferIPv6[OR,Dir]Port
2016-02-01 09:15:07 +11:00
teor (Tim Wilson-Brown)
26f68a771c
Report malformed options in options_validate unit tests
2016-02-01 09:11:16 +11:00
teor (Tim Wilson-Brown)
13db39b856
Fix existing options_validate unit tests for ClientUseIPv4
2016-02-01 09:10:52 +11:00
Ola Bini
8627a40fba
Add a helper to search for strings in the log, and change option tests to use this helper instead of looking at specific indices in the log list
2016-02-01 09:09:44 +11:00
Nick Mathewson
5f7df92571
Remove support for unsigned time_t
...
We've never actually tested this support, and we should probably assume
it's broken.
To the best of my knowledge, only OpenVMS has this, and even on
OpenVMS it's a compile-time option to disable it. And I don't think
we build on openvms anyway. (Everybody else seems to be working
around the 2038 problem by using a 64-bit time_t, which won't expire
for roughly 292 billion years.)
Closes ticket 18184.
2016-01-29 09:18:59 -05:00
teor (Tim Wilson-Brown)
c4cb4706c9
Merge branch 'feature17840-v11-squashed' into feature17840-v11-merged
...
Conflicts:
src/or/directory.c
src/test/test_routerlist.c
Fix minor conflicts.
2016-01-29 07:37:06 +11:00
teor (Tim Wilson-Brown)
73fc67bc89
Tor2Web: tell extend_info_from_node intro point connections are direct
2016-01-29 07:16:32 +11:00
teor (Tim Wilson-Brown)
1401117ff2
Return NULL from extend_info_from_node if the node has no allowed address
...
Modify callers to correctly handle these new NULL returns:
* fix assert in onion_extend_cpath
* warn and discard circuit in circuit_get_open_circ_or_launch
* warn, discard circuit, and tell controller in handle_control_extendcircuit
2016-01-29 07:16:32 +11:00
teor (Tim Wilson-Brown)
77a9de0d48
Automatically use IPv6 when ClientUseIPv4 is 0
...
Consequential changes to log messages:
* it's no longer possible to disable both IPv4 and IPv6,
* refactor common string out of remaining log messages
2016-01-29 07:16:32 +11:00
teor (Tim Wilson-Brown)
3a00215c35
Minor whitespace-only fix
2016-01-29 07:16:05 +11:00
teor (Tim Wilson-Brown)
4db5a35e66
Consistently format addresses in node_get_address_string
...
Also, don't write to a buffer with length zero.
2016-01-29 07:16:05 +11:00
teor (Tim Wilson-Brown)
772577b547
Optimise reachability checks when iterating through relay lists
...
Skip address checks on servers.
Skip allowed-only address checks on non-bridge clients with IPv4.
2016-01-29 07:16:04 +11:00
teor (Tim Wilson-Brown)
e991d642ec
Add firewall_is_fascist_dir()
...
Refactor common parts of firewall_is_fascist_or().
2016-01-29 07:16:04 +11:00
teor (Tim Wilson-Brown)
3b8216f215
Use fascist firewall and ClientUseIPv4 for bridge clients
...
Bridge clients ignore ClientUseIPv6, acting as if it is always 1.
This preserves existing behaviour.
Make ClientPreferIPv6OR/DirPort auto by default:
* Bridge clients prefer IPv6 by default.
* Other clients prefer IPv4 by default.
This preserves existing behaviour.
2016-01-29 07:16:04 +11:00
teor (Tim Wilson-Brown)
4528f89316
Make entry_guard_set_status consistent with entry_is_live
...
Check fascist_firewall_allows_node in entry_guard_set_status and
return the same message as entry_is_live.
2016-01-29 07:15:53 +11:00
teor (Tim Wilson-Brown)
1648666203
Choose bridge addresses by IPv4/IPv6 preferences
2016-01-29 07:15:53 +11:00
teor (Tim Wilson-Brown)
c3cc8e16e9
Log when IPv4/IPv6 restrictions or preferences weren't met
2016-01-29 07:13:57 +11:00
teor (Tim Wilson-Brown)
e72cbf7a4e
Choose directory servers by IPv4/IPv6 preferences
...
Add unit tests, refactor pick_directory functions.
2016-01-29 07:13:57 +11:00
teor (Tim Wilson-Brown)
268608c0a0
Choose OR Entry Guards using IPv4/IPv6 preferences
...
Update unit tests.
2016-01-29 07:13:57 +11:00
teor (Tim Wilson-Brown)
2d33d192fc
Add ClientUseIPv4 and ClientPreferIPv6DirPort torrc options
...
ClientUseIPv4 0 tells tor to avoid IPv4 client connections.
ClientPreferIPv6DirPort 1 tells tor to prefer IPv6 directory connections.
Refactor policy for IPv4/IPv6 preferences.
Fix a bug where node->ipv6_preferred could become stale if
ClientPreferIPv6ORPort was changed after the consensus was loaded.
Update documentation, existing code, add unit tests.
2016-01-29 07:13:57 +11:00
teor (Tim Wilson-Brown)
4460feaf28
Fix *_get_all_orports to use ipv6_orport
...
node_get_all_orports and router_get_all_orports incorrectly used or_port
with IPv6 addresses. They now use ipv6_orport.
Also refactor and remove duplicated code.
2016-01-29 07:13:56 +11:00
Nick Mathewson
39b597c2fd
Restrict the meaning of digests_t to sha1+sha256.
...
This saves CPU and RAM when handling consensuses and x509 certs.
Closes ticket 17795; bug not in any released tor.
2016-01-27 13:10:17 -05:00
Nick Mathewson
bca7083e82
avoid integer overflow in and around smartlist_ensure_capacity.
...
This closes bug 18162; bugfix on a45b131590
, which fixed a related
issue long ago.
In addition to the #18162 issues, this fixes a signed integer overflow
in smarltist_add_all(), which is probably not so great either.
2016-01-27 12:32:41 -05:00
Nick Mathewson
1a022525f7
attempt to fix crashes in unit tests
2016-01-27 09:42:08 -05:00
Nick Mathewson
39a86185c8
Correct further grammatical errors in tor comments
...
Avoid using a pronoun where it makes comments unclear.
Avoid using gender for things that don't have it.
Avoid assigning gender to people unnecessarily.
2016-01-27 08:51:28 -05:00
Nick Mathewson
42dea56363
Merge remote-tracking branch 'teor/bug18145'
2016-01-26 10:01:34 -05:00
teor (Tim Wilson-Brown)
4339fa5609
Replace "Alice" with "the client" in a hidden service log message
2016-01-26 13:49:16 +11:00
teor (Tim Wilson-Brown)
fb939ed82e
Replace Alice/Bob with client/service in hidden service comments
2016-01-26 13:48:31 +11:00
teor (Tim Wilson-Brown)
7a4b4f0c3a
Correct grammatical errors in tor log messages
...
Avoid using gender for things that don't have it.
2016-01-26 13:47:23 +11:00
teor (Tim Wilson-Brown)
c927b6cb1a
Correct grammatical errors in tor comments
...
Avoid using gender for things that don't have it.
Avoid assigning a gender to tor users.
2016-01-26 13:46:54 +11:00
Nick Mathewson
0010b8064e
Fix redundant-declaration warning
2016-01-22 09:53:42 -05:00
Nick Mathewson
cbed61d128
Merge remote-tracking branch 'twstrike/parse_port_config_tests'
2016-01-21 12:15:39 -05:00
Nick Mathewson
ae3d2a93f0
Merge remote-tracking branch 'twstrike/options_test'
2016-01-19 20:14:18 -05:00
Ola Bini
32946e2c96
Make sure that tests for domain sockets only run on OSes with domain sockets
2016-01-19 11:14:41 -05:00
Ola Bini
3e738211d4
Use correct u64 int ops instead of regular int ops, in order to avoid warnings on 32bit clang
2016-01-19 11:11:01 -05:00
Nick Mathewson
f557a7f327
Merge branch 'maint-0.2.7'
2016-01-19 08:30:48 -05:00
Nick Mathewson
534a0ba59b
Merge branch 'maint-0.2.6' into maint-0.2.7
2016-01-19 08:30:39 -05:00
Nick Mathewson
e2efa9e321
Refine the memwipe() arguments check for 18089 a little more.
...
We still silently ignore
memwipe(NULL, ch, 0);
and
memwipe(ptr, ch, 0); /* for ptr != NULL */
But we now assert on:
memwipe(NULL, ch, 30);
2016-01-19 08:28:58 -05:00
Nick Mathewson
7b6d7aae09
Merge branch 'fallbacks-0281-squashed'
2016-01-18 20:16:05 -05:00
teor (Tim Wilson-Brown)
ab3c86479a
Add default fallback directories for the 0.2.8 alpha releases
...
Allow fallback directories which have been stable for 30 days
to work around #18050 , which causes relays to submit descriptors
with 0 DirPorts when restarted. (Particularly during Tor version
upgrades.)
Ignore low fallback directory count in alpha builds.
2016-01-18 20:15:59 -05:00
Nick Mathewson
ab58f60321
Merge branch 'maint-0.2.7'
2016-01-18 20:03:28 -05:00
Nick Mathewson
8335b1f9a9
Merge branch 'maint-0.2.6' into maint-0.2.7
2016-01-18 20:00:16 -05:00
teor (Tim Wilson-Brown)
db81565331
Make memwipe() do nothing when passed a NULL pointer or zero size
...
Check size argument to memwipe() for underflow.
Closes bug #18089 . Reported by "gk", patch by "teor".
Bugfix on 0.2.3.25 and 0.2.4.6-alpha (#7352 ),
commit 49dd5ef3
on 7 Nov 2012.
2016-01-18 19:58:07 -05:00
Nick Mathewson
0ace22ef6d
Merge remote-tracking branch 'origin/maint-0.2.7'
2016-01-18 19:52:34 -05:00
Nick Mathewson
83dfcfbc4a
Merge remote-tracking branch 'teor/bug18050' into maint-0.2.7
2016-01-18 19:51:57 -05:00
teor (Tim Wilson-Brown)
6094a886cf
Check ORPort and DirPort reachability before publishing a relay descriptor
...
Otherwise, relays publish a descriptor with DirPort 0 when the DirPort
reachability test takes longer than the ORPort reachability test.
Closes bug #18050 . Reported by "starlight", patch by "teor".
Bugfix on 0.1.0.1-rc, commit a1f1fa6ab
on 27 Feb 2005.
2016-01-18 14:00:29 +11:00
Nick Mathewson
da4dbb29b7
Fix some leaks in the unit tests.
2016-01-15 11:45:19 -05:00
Nick Mathewson
f6ea7a6258
Make the new directory tests build and run again.
...
Had to disable a couple.
Also add changes file for 17003.
2016-01-15 11:20:14 -05:00
Nick Mathewson
537214d10e
Merge remote-tracking branch 'twstrike/directory-tests'
2016-01-15 11:08:22 -05:00
Nick Mathewson
f47d4af04c
Whitespace cleanup
2016-01-15 10:57:03 -05:00
Nick Mathewson
00b13cb091
Merge remote-tracking branch 'twstrike/options_test'
2016-01-15 10:52:27 -05:00
Ola Bini
1722232d78
Update tests to match current changes to options_validate
2016-01-13 10:54:08 -05:00
Ola Bini
6d5215fd19
Move clearing of log messages on advice from @cypherpunks, in order to minimize risk of race conditions leading to another memory leak
2016-01-13 10:35:49 -05:00
Ola Bini
5c1c117b8e
Revert my addition of callback cleaner and instead use existing functionality for temporary log files
2016-01-13 10:35:06 -05:00
Ola Bini
0bfa616e2e
Remove a small memory leak in log callback setup
2016-01-13 10:35:05 -05:00
Ola Bini
ce953b864b
Fix memory leaks
2016-01-13 10:35:05 -05:00
Ola Bini
f2a7a83626
Fix all white space issues
2016-01-13 10:34:24 -05:00
Ola Bini
1a3fcda0a3
Fix some issues in gcc warnings
2016-01-13 10:32:09 -05:00
Ola Bini
5edd431d92
Add tests for options_act
2016-01-13 10:31:13 -05:00
Fergus Dall
d748c193e1
Include square brackets and port number in calcs for max_dl_per_request
2016-01-13 18:05:52 +10:30
Fergus Dall
91077d3aca
Update the limits in max_dl_per_request for IPv6 address length
2016-01-13 06:57:24 +10:30
Ola Bini
fcd7923a96
Fix remaining memory leaks
2016-01-12 12:33:05 -05:00
Ola Bini
ee39869f67
Fix some memory leaks
2016-01-12 12:14:34 -05:00
Ola Bini
b24a16e56e
Make it compile with gcc-warnings turned on
2016-01-12 11:53:07 -05:00
Nick Mathewson
3074b8365f
Add another safe_str_client to fix bug 17419
2016-01-12 10:42:01 -05:00
Fergus Dall
9e5a6f0293
Stop log_heartbeat test from failing in timezones with non-integer offsets
...
Instead of comparing the end of the time string against a constant,
compare it to the output of format_local_iso_time when given the
correct input.
2016-01-12 22:01:46 +10:30
Nick Mathewson
16840e52e5
Make the touch_file unit test work around FS/system time sync issues
...
Sometimes you can call time() and then touch a file, and have the
second come out a little before the first. See #18025 for way more
information than you necessarily wanted.
2016-01-11 10:03:00 -05:00
Nick Mathewson
1d6dd288e1
Try a little harder to only use SecureZeroMemory when it's present
...
We could be using AC_CHECK_FUNC_DECL too, but it shouldn't be needed.
2016-01-11 09:02:42 -05:00
Nick Mathewson
d10ea49588
Merge remote-tracking branch 'rl1987/feature17950'
2016-01-11 08:54:51 -05:00
rl1987
fd26c1d994
Re-add the removed address family check.
2016-01-09 15:03:54 +01:00
Nick Mathewson
95f5910810
Merge branch 'unixninja_ticket15989_squashed'
2016-01-08 15:52:22 -08:00
unixninja92
4f0e28977d
Added AccountRule in and AccountingRule out options
2016-01-08 15:52:10 -08:00
Nick Mathewson
5b5abd8c03
Merge commit '110765f5564a588c5f019d32b5e6f66cc7806c41'
2016-01-08 15:08:28 -08:00
Nick Mathewson
a1019b82c1
Merge remote-tracking branch 'public/feature16794_more'
2016-01-08 14:54:51 -08:00
cypherpunks
4c10a9c445
Simplify micro-revision dependency rules
...
The Automake variable OBJEXT is automatically adjusted to the correct
object file extension for the target platform.
2016-01-08 13:27:36 -08:00
rl1987
fb373a9ef6
On win32, use SecureZeroMemory() to securely wipe buffers.
...
{Also tweak the comments. -nickm)
2016-01-07 14:25:31 -08:00
Nick Mathewson
3783046f3b
Use memset_s or explicit_bzero when available.
2016-01-07 12:53:24 -08:00
Nick Mathewson
8d6aafbb4a
Merge remote-tracking branch 'teor/comments-20151213'
2016-01-07 12:50:10 -08:00
dana koch
be841f77aa
Compatibility defines should be used for LibreSSL.
...
LibreSSL doesn't use OpenSSL_version (it uses the older SSLeay_version
API), but it reports a major version number as 2 in
OPENSSL_VERSION_NUMBER. Instead of fudging the version check, for now,
let's just check if we're using LibreSSL by checking the version number
macro exists, and use compatibility defines unconditionally when we
detect LibreSSL.
2016-01-07 12:48:59 -08:00
Nick Mathewson
62bc4a199a
Fix #18012 harder.
2016-01-07 09:58:48 -08:00
Nick Mathewson
77bc95cb5e
Merge remote-tracking branch 'public/17826_redux'
2016-01-07 09:52:09 -08:00
Nick Mathewson
55232e32c7
Merge branch 'maint-0.2.7'
2016-01-07 09:43:24 -08:00
Nick Mathewson
b34c5c6b8a
Merge branch 'maint-0.2.6' into maint-0.2.7
...
Conflicts:
src/or/config.c
2016-01-07 09:43:12 -08:00
Nick Mathewson
c7b0cd9c2f
Merge branch 'maint-0.2.5' into maint-0.2.6
2016-01-07 09:41:36 -08:00
Nick Mathewson
9ca329581a
Merge branch 'maint-0.2.4' into maint-0.2.5
...
Conflicts:
src/or/config.c
2016-01-07 09:40:23 -08:00
teor (Tim Wilson-Brown)
11f63d26ac
Update dannenberg's V3 authority identity fingerprint
...
This new identity key was changed on 18 November 2015.
2016-01-07 09:39:04 -08:00
Nick Mathewson
b5ce332958
Try to fix windows test build ( #18012 )
2016-01-07 09:25:44 -08:00
Nick Mathewson
5ba7b1a74d
Merge remote-tracking branch 'gtank/feature16774-squashed'
2016-01-07 09:20:03 -08:00
Nick Mathewson
37b0d27a34
Merge branch 'maint-0.2.7'
2016-01-07 09:14:31 -08:00
Nick Mathewson
d9b11d05e8
Merge branch 'maint-0.2.6' into maint-0.2.7
2016-01-07 09:14:15 -08:00
Nick Mathewson
400df18688
Merge branch 'maint-0.2.5' into maint-0.2.6
2016-01-07 09:14:05 -08:00
Nick Mathewson
ae223138fb
Merge branch 'maint-0.2.4' into maint-0.2.5
2016-01-07 09:13:54 -08:00
Karsten Loesing
1496056c12
Update geoip and geoip6 to the January 5 2016 database.
2016-01-07 11:10:37 +01:00
George Tankersley
3bc45f2628
Add FallbackDir list to GETINFO config/defaults
2016-01-06 11:22:30 -08:00
rl1987
110765f556
Use get_interface6_via_udp_socket_hack() properly in _list().
...
When _list() is called with AF_UNSPEC family and fails to enumerate
network interfaces using platform specific API, have it call
_hack() twice to find out IPv4 and/or IPv6 address of a machine Tor
instance is running on. This is correct way to handle this case
because _hack() can only be called with AF_INET and AF_INET6 and
does not support any other address family.
2016-01-06 14:47:35 +01:00
rl1987
680d0701e5
Tweak ioctl case.
2016-01-06 11:47:31 +01:00
Nick Mathewson
7660471054
Unit tests for getpw* functions
2016-01-03 09:00:30 -08:00
Nick Mathewson
c941240f32
clean up the "skip this util test on windows" logic.
2016-01-03 08:47:14 -08:00
Nick Mathewson
8aa9ee73da
Add a test for touch_file
2016-01-03 08:37:14 -08:00
Nick Mathewson
de8110fba2
Explicitly test our get/set_uint{8,16,32,64}.
2016-01-03 08:27:54 -08:00
Nick Mathewson
a8749ea9fd
Test another codepath in inet_ntop
2016-01-03 08:27:44 -08:00
rl1987
44497e9ebc
Add family argument to get_interface_addresses_raw (and subfunctions).
2016-01-03 15:35:45 +01:00
teor (Tim Wilson-Brown)
ce5406b71a
Fix a comment typo in main.c
2016-01-03 17:34:42 +11:00
teor (Tim Wilson-Brown)
3a24364a69
Fix typos in microdesc_t and node_t comments
2016-01-03 17:34:42 +11:00
teor (Tim Wilson-Brown)
1949908d13
Fix a typo in the comment for tor_addr_port_split
2016-01-03 17:34:41 +11:00
Nick Mathewson
603110aa1d
Merge branch 'feature17796_squashed'
2015-12-29 09:48:39 -05:00
Nick Mathewson
a12c5f462f
Remove the (now-unused) digest_algorithm_bitfield_t
2015-12-29 09:47:04 -05:00
Nick Mathewson
488cdee5e7
When allocating a crypto_digest_t, allocate no more bytes than needed
...
Previously we would allocate as many bytes as we'd need for a
keccak--even when we were only calculating SHA1.
Closes ticket 17796.
2015-12-29 09:47:04 -05:00
Nick Mathewson
bc2cd0ff2b
Use timingsafe_memcmp() where available.
...
See ticket 17944; patch from "logan".
2015-12-29 09:43:01 -05:00
Nick Mathewson
263f6d11fd
Mark all object files built based on micro-revision.i as depending on it
...
Fixes make -j for some users; fixes bug 17826.
Bugfix on 0.2.5.1, when we started building testing versions of all
the object files.
2015-12-26 13:43:13 -05:00
Nick Mathewson
6365859825
Disable the dynlock functions we were giving openssl.
...
OpenSSL doesn't use them, and fwict they were never called. If some
version of openssl *does* start using them, we should test them before
we turn them back on.
See ticket 17926
2015-12-23 09:58:36 -05:00
Nick Mathewson
d7c841f467
Unit tests for crypto_force_rand_ssleay().
...
Part of 16794.
2015-12-23 09:58:08 -05:00
Nick Mathewson
b18f533cf0
Always test both ed25519 backends.
...
Part of #16794
2015-12-23 09:16:26 -05:00
Nick Mathewson
45f5e59751
Remove extra quotes from log message
...
Bug 17843; fix on ddc65e2b
2015-12-22 10:31:26 -05:00
Nick Mathewson
4ec0f8531e
Add an unreachable line to make the compiler happy
2015-12-22 10:27:04 -05:00
Nick Mathewson
f2a5df252f
whoops; really fix the 32-bit builds
2015-12-21 13:10:10 -05:00
Nick Mathewson
8ede8d411a
Fix a couple of jenkins issues from 12538.
2015-12-21 12:32:20 -05:00
Nick Mathewson
62f97545e4
Merge remote-tracking branch 'public/bug12538_merged'
2015-12-21 07:30:32 -05:00
Nick Mathewson
bb19799a49
Appease "make check-spaces"
2015-12-20 15:00:20 -05:00
Nick Mathewson
2d9c38ea72
Repair "make distcheck".
2015-12-20 14:57:27 -05:00
Nick Mathewson
7b0cbf22c0
Merge remote-tracking branch 'yawning/feature17783_take2'
2015-12-20 14:10:52 -05:00
Yawning Angel
081b159abc
Add the randomized large buffer test for SHA-3 incremental hashing.
...
This creates a random 100 KiB buffer, and incrementally hashes
(SHA3-512) between 1 and 5 * Rate bytes in a loop, comparing the running
digest with the equivalent one shot call from the start of the buffer.
2015-12-20 07:11:20 +00:00
Yawning Angel
9467485517
Add crypto_xof_t
and assorted routines, backed by SHAKE256.
...
This is an eXtendable-Output Function with the following claimed
security strengths against *all* adversaries:
Collision: min(d/2, 256)
Preimage: >= min(d, 256)
2nd Preimage: min(d, 256)
where d is the amount of output used, in bits.
2015-12-19 22:45:21 +00:00
Yawning Angel
687f9b3bd7
Add the SHA-3 hash functions to common/crypto.h.
...
* DIGEST_SHA3_[256,512] added as supported algorithms, which do
exactly what is said on the tin.
* test/bench now benchmarks all of the supported digest algorithms,
so it's possible to see just how slow SHA-3 is, though the message
sizes could probably use tweaking since this is very dependent on
the message size vs the SHA-3 rate.
2015-12-19 22:44:05 +00:00
Yawning Angel
5356eba6ca
Use tor specific headers and memwipe() instead of memset_s(), and build.
...
This is where things get tor specific. It's just replacing stdint.h
and memset_s with the tor compat code so going back is trivial...
2015-12-19 22:34:39 +00:00
Yawning Angel
18685df031
Expose an incremental API in addition to the one-shot routines.
...
The digest routines use init/update/sum, where sum will automatically
copy the internal state to support calculating running digests.
The XOF routines use init/absorb/squeeze, which behave exactly as stated
on the tin.
2015-12-19 22:34:39 +00:00
Yawning Angel
e993003792
Clean import of keccak-tiny ( https://github.com/coruus/keccak-tiny )
...
As of commit: 64b6647514212b76ae7bca0dea9b7b197d1d8186
2015-12-18 20:32:10 +00:00
Nick Mathewson
f0a4282e9a
fix routerlist/pick_directory_server_impl in light of 12538
2015-12-18 14:10:03 -05:00
Nick Mathewson
f5f35e9009
Fix config/directory_fetch after 12538 merge
2015-12-18 13:36:41 -05:00
Nick Mathewson
a6c9fcc486
Fix nodelist/node_is_dir test wrt 12538.
2015-12-18 13:24:23 -05:00
Nick Mathewson
c4fb7ad034
Merge branch 'feature12538_028_01_squashed'
2015-12-18 13:16:49 -05:00
Nick Mathewson
14c9b99051
mark a variable unused to fix a warning.
2015-12-18 13:16:40 -05:00
David Goulet
ea6f88478c
Use dir_server_mode() in find_dl_schedule()
...
Signed-off-by: David Goulet <dgoulet@ev0ke.net>
2015-12-18 13:14:10 -05:00