]> git.ipfire.org Git - thirdparty/tor.git/log
thirdparty/tor.git
10 years agoAdd changes file for 17778
cypherpunks [Mon, 16 Nov 2015 14:12:44 +0000 (15:12 +0100)] 
Add changes file for 17778

10 years agoFix memory leak in ntor test
cypherpunks [Mon, 16 Nov 2015 12:21:56 +0000 (13:21 +0100)] 
Fix memory leak in ntor test

10 years agoMerge remote-tracking branch 'teor/exitpolicy-multicast'
Nick Mathewson [Mon, 7 Dec 2015 15:23:30 +0000 (10:23 -0500)] 
Merge remote-tracking branch 'teor/exitpolicy-multicast'

10 years agoMerge remote-tracking branch 'teor/comments-20151204'
Nick Mathewson [Mon, 7 Dec 2015 15:13:20 +0000 (10:13 -0500)] 
Merge remote-tracking branch 'teor/comments-20151204'

10 years agoMerge branch 'maint-0.2.7'
Nick Mathewson [Mon, 7 Dec 2015 15:11:54 +0000 (10:11 -0500)] 
Merge branch 'maint-0.2.7'

10 years agoMerge branch 'maint-0.2.6' into maint-0.2.7
Nick Mathewson [Mon, 7 Dec 2015 15:11:21 +0000 (10:11 -0500)] 
Merge branch 'maint-0.2.6' into maint-0.2.7

10 years agoMerge branch 'maint-0.2.5' into maint-0.2.6
Nick Mathewson [Mon, 7 Dec 2015 15:10:44 +0000 (10:10 -0500)] 
Merge branch 'maint-0.2.5' into maint-0.2.6

10 years agoMerge branch 'maint-0.2.4' into maint-0.2.5
Nick Mathewson [Mon, 7 Dec 2015 15:10:21 +0000 (10:10 -0500)] 
Merge branch 'maint-0.2.4' into maint-0.2.5

10 years agoComment-only change to connection_get_by_type_addr_port_purpose
teor (Tim Wilson-Brown) [Mon, 7 Dec 2015 05:13:07 +0000 (16:13 +1100)] 
Comment-only change to connection_get_by_type_addr_port_purpose

connection_get_by_type_addr_port_purpose also ignores connections
that are marked for close.

10 years agoComment-only changes to connection_connect
teor (Tim Wilson-Brown) [Mon, 7 Dec 2015 04:59:34 +0000 (15:59 +1100)] 
Comment-only changes to connection_connect

port is in host order (addr is tor_addr_t, endianness is abstracted).

addr and port can be different to conn->addr and conn->port if
connecting via a proxy.

10 years agoMove a comment in router_get_my_descriptor to the correct line
teor (Tim Wilson-Brown) [Fri, 4 Dec 2015 07:13:29 +0000 (18:13 +1100)] 
Move a comment in router_get_my_descriptor to the correct line

10 years agoUpdate comment: get_connection_array no longer takes "n"
teor (Tim Wilson-Brown) [Tue, 1 Dec 2015 02:08:37 +0000 (13:08 +1100)] 
Update comment: get_connection_array no longer takes "n"

10 years agoConsistently ignore multicast in internal reject private exit policies
teor (Tim Wilson-Brown) [Mon, 7 Dec 2015 03:44:23 +0000 (14:44 +1100)] 
Consistently ignore multicast in internal reject private exit policies

Consistently ignore multicast addresses when automatically
generating reject private exit policies.

Closes ticket 17763. Bug fix on 10a6390deb3c9,
not in any released version of Tor. Patch by "teor".

10 years agoUpdate geoip and geoip6 to the December 1 2015 database.
Karsten Loesing [Sat, 5 Dec 2015 16:02:59 +0000 (17:02 +0100)] 
Update geoip and geoip6 to the December 1 2015 database.

10 years agoMerge branch 'maint-0.2.7'
Nick Mathewson [Tue, 1 Dec 2015 03:03:00 +0000 (22:03 -0500)] 
Merge branch 'maint-0.2.7'

10 years agoAdd changes file for 17722
cypherpunks [Sun, 29 Nov 2015 20:07:34 +0000 (21:07 +0100)] 
Add changes file for 17722

10 years agoFix undefined behavior caused by memory overlap
cypherpunks [Fri, 17 Jul 2015 09:53:12 +0000 (11:53 +0200)] 
Fix undefined behavior caused by memory overlap

The tor_cert_get_checkable_sig function uses the signing key included in
the certificate (if available) when a separate public key is not given.

When the signature is valid, the tor_cert_checksig function copies the
public key from the checkable structure to the public key field of the
certificate signing key.

In situations where the separate public key is not given but the
certificate includes a signing key, the source and destination pointers
in the copy operation are equal and invoke undefined behavior.

Undefined behaviour is avoided by ensuring both pointers are different.

10 years agoAvoid relying on malloc internals in test_rend_cache_purge.
teor (Tim Wilson-Brown) [Mon, 30 Nov 2015 23:50:14 +0000 (10:50 +1100)] 
Avoid relying on malloc internals in test_rend_cache_purge.

Closes ticket 17724. Bug fix on ade5005853c1 and 5e9f2384cf0f,
not in any released version of Tor. Patch by "teor".

10 years agoMore fixes/debugging attempts for 17659
Nick Mathewson [Fri, 27 Nov 2015 17:54:57 +0000 (12:54 -0500)] 
More fixes/debugging attempts for 17659

10 years agoAdd a stack trace for help debugging one part of 17659
Nick Mathewson [Fri, 27 Nov 2015 17:11:51 +0000 (12:11 -0500)] 
Add a stack trace for help debugging one part of 17659

10 years agoMerge branch 'fix-policies-memory-v2-squashed'
Nick Mathewson [Fri, 27 Nov 2015 16:54:52 +0000 (11:54 -0500)] 
Merge branch 'fix-policies-memory-v2-squashed'

10 years agoFix memory leak in policies test
cypherpunks [Thu, 26 Nov 2015 18:03:44 +0000 (19:03 +0100)] 
Fix memory leak in policies test

10 years agoFix use-after-free of stack memory in getinfo_helper_policies
teor (Tim Wilson-Brown) [Thu, 26 Nov 2015 22:31:47 +0000 (09:31 +1100)] 
Fix use-after-free of stack memory in getinfo_helper_policies

10 years agoFix use-after-free of stack memory in policies_parse_exit_policy*
teor (Tim Wilson-Brown) [Thu, 26 Nov 2015 22:17:44 +0000 (09:17 +1100)] 
Fix use-after-free of stack memory in policies_parse_exit_policy*

Change the function names & comments to make the copying explicit.

10 years agouse sockaddr_storage for stack-allocated sockets in ersatz socketpair
Nick Mathewson [Fri, 27 Nov 2015 16:52:59 +0000 (11:52 -0500)] 
use sockaddr_storage for stack-allocated sockets in ersatz socketpair

10 years agoMake SIZEOF_SOCKADDR return socklen_t to avoid bad compares.
Nick Mathewson [Fri, 27 Nov 2015 16:48:54 +0000 (11:48 -0500)] 
Make SIZEOF_SOCKADDR return socklen_t to avoid bad compares.

10 years agoUse uint16_t, not in_port_t (which does not exist on Windows). See #17638.
Nick Mathewson [Fri, 27 Nov 2015 16:39:03 +0000 (11:39 -0500)] 
Use uint16_t, not in_port_t (which does not exist on Windows). See #17638.

10 years agoCheck magic number in connection_ap_attach_pending
Nick Mathewson [Fri, 27 Nov 2015 16:21:51 +0000 (11:21 -0500)] 
Check magic number in connection_ap_attach_pending

10 years agoimprove log messages to try to track down #17659
Nick Mathewson [Thu, 26 Nov 2015 17:44:12 +0000 (12:44 -0500)] 
improve log messages to try to track down #17659

10 years agoUnit test the full length of SHA256 and SHA512 digests
teor (Tim Wilson-Brown) [Thu, 26 Nov 2015 15:25:31 +0000 (02:25 +1100)] 
Unit test the full length of SHA256 and SHA512 digests

Bugfix on a tor version before the refactoring in git commit
cea12251995d (23 Sep 2009). Patch by "teor".

10 years agoMerge remote-tracking branch 'teor/rand-failure-modes-v2'
Nick Mathewson [Thu, 26 Nov 2015 15:05:38 +0000 (10:05 -0500)] 
Merge remote-tracking branch 'teor/rand-failure-modes-v2'

10 years agoFix buffer size in sha512 unit test
Nick Mathewson [Thu, 26 Nov 2015 15:00:12 +0000 (10:00 -0500)] 
Fix buffer size in sha512 unit test

Nobody likes a stack overflow, even in unit tests.

Closes 17699; but not in any released tor.

10 years agoFix test_tortls.c to no longer test failing crypto_rand.
Nick Mathewson [Thu, 26 Nov 2015 14:34:44 +0000 (09:34 -0500)] 
Fix test_tortls.c to no longer test failing crypto_rand.

(crypto_rand is no longer allowed to fail.)

Closes bug 17686; bug not in any released tor.  (No backport, since
the tortls tests aren't in 0.2.7)

10 years agoCorrectly free a smartlist in getinfo_helper_policies
teor (Tim Wilson-Brown) [Thu, 26 Nov 2015 14:11:25 +0000 (01:11 +1100)] 
Correctly free a smartlist in getinfo_helper_policies

10 years agoQuote variables in case they contain spaces
cypherpunks [Thu, 26 Nov 2015 12:18:40 +0000 (13:18 +0100)] 
Quote variables in case they contain spaces

10 years agoAdd unit tests that check for common RNG failure modes
teor (Tim Wilson-Brown) [Thu, 26 Nov 2015 10:25:31 +0000 (21:25 +1100)] 
Add unit tests that check for common RNG failure modes

Check that crypto_rand doesn't return all zeroes, identical values,
or incrementing values (OpenSSL's rand_predictable feature).

10 years agoMerge branch 'bug17686_v2_027'
Nick Mathewson [Thu, 26 Nov 2015 03:33:49 +0000 (22:33 -0500)] 
Merge branch 'bug17686_v2_027'

10 years agoAdd a changes file for bug 17686
Nick Mathewson [Wed, 25 Nov 2015 18:25:21 +0000 (13:25 -0500)] 
Add a changes file for bug 17686

10 years agoFix documentation for crypto_rand*
Nick Mathewson [Wed, 25 Nov 2015 17:28:20 +0000 (12:28 -0500)] 
Fix documentation for crypto_rand*

10 years agoNow that crypto_rand() cannot fail, it should return void.
Nick Mathewson [Wed, 25 Nov 2015 15:42:00 +0000 (10:42 -0500)] 
Now that crypto_rand() cannot fail, it should return void.

10 years agoAdd crypto-initializer functions to those whose return values must be checked
Nick Mathewson [Wed, 25 Nov 2015 15:36:34 +0000 (10:36 -0500)] 
Add crypto-initializer functions to those whose return values must be checked

10 years agoMake crypto_seed_rng() and crypto_rand() less scary.
Nick Mathewson [Wed, 25 Nov 2015 15:30:58 +0000 (10:30 -0500)] 
Make crypto_seed_rng() and crypto_rand() less scary.

These functions must really never fail; so have crypto_rand() assert
that it's working okay, and have crypto_seed_rng() demand that
callers check its return value.  Also have crypto_seed_rng() check
RAND_status() before returning.

10 years agoMerge remote-tracking branch 'teor/check-crypto-errors-v2'
Nick Mathewson [Thu, 26 Nov 2015 03:28:12 +0000 (22:28 -0500)] 
Merge remote-tracking branch 'teor/check-crypto-errors-v2'

10 years agofixup! Add controller getinfo exit-policy/reject-private
teor (Tim Wilson-Brown) [Sun, 22 Nov 2015 21:46:26 +0000 (08:46 +1100)] 
fixup! Add controller getinfo exit-policy/reject-private

Stop ignoring ExitPolicyRejectPrivate in getinfo
exit-policy/reject-private. Fix a memory leak.

Set ExitPolicyRejectPrivate in the unit tests, and make a mock
function declaration static.

10 years agoCheck the return value of HMAC in crypto.c and assert on error
teor (Tim Wilson-Brown) [Mon, 23 Nov 2015 09:53:59 +0000 (20:53 +1100)] 
Check the return value of HMAC in crypto.c and assert on error

Fixes bug #17658; bugfix on commit in fdbb9cdf746b (11 Oct 2011)
in tor version 0.2.3.5-alpha-dev.

10 years agoMerge branch 'bug17654_try1'
Nick Mathewson [Wed, 25 Nov 2015 17:25:44 +0000 (12:25 -0500)] 
Merge branch 'bug17654_try1'

10 years agoAttempt to make openbsd compilation happier with libevent2 installed
Nick Mathewson [Wed, 25 Nov 2015 14:43:12 +0000 (09:43 -0500)] 
Attempt to make openbsd compilation happier with libevent2 installed

Fix for bug 16651; patch from "rubiate".

10 years agoInitialize libevent before periodic events
cypherpunks [Wed, 25 Nov 2015 14:20:07 +0000 (15:20 +0100)] 
Initialize libevent before periodic events

The initialization of libevent interferes with other tests so we also
fork the circuit_timeout test.

10 years agofixup! Block OutboundBindAddressIPv[4|6]_ and configured ports on exit relays
teor (Tim Wilson-Brown) [Sun, 22 Nov 2015 21:38:32 +0000 (08:38 +1100)] 
fixup! Block OutboundBindAddressIPv[4|6]_ and configured ports on exit relays

Fix unit tests for get_interface_address6_list to assume less
about the interface addresses on the system.

Instead, mock get_interface_address6_list and use the mocked
function to provide a range of address combinations.

10 years agoMerge branch 'maint-0.2.7'
Nick Mathewson [Wed, 25 Nov 2015 14:28:44 +0000 (09:28 -0500)] 
Merge branch 'maint-0.2.7'

10 years agoInclude netinet/in.h (if detected) in check for net/pfvar.h
Nick Mathewson [Wed, 25 Nov 2015 14:27:52 +0000 (09:27 -0500)] 
Include netinet/in.h (if detected) in check for net/pfvar.h

Patch from rubiate; fixes bug 17551.

10 years agoMerge remote-tracking branch 'public/decouple_dir_request_failed'
Nick Mathewson [Wed, 25 Nov 2015 14:21:25 +0000 (09:21 -0500)] 
Merge remote-tracking branch 'public/decouple_dir_request_failed'

10 years agoFix a logic error in connection_tls_continue_handshake().
Nick Mathewson [Wed, 25 Nov 2015 14:12:50 +0000 (09:12 -0500)] 
Fix a logic error in connection_tls_continue_handshake().

(If we take the branch above this assertion, than we *didn't* have a
v1 handshake.  So if we don't take the branch, we did.  So if we
reach this assertion, we must be running as a server, since clients
no longer attempt v1 handshakes.)

Fix for bug 17654; bugfix on 9d019a7db725dca3dfdbf8d4dbc3b51835e0b49e.

Bug not in any released Tor.

10 years agoMerge remote-tracking branch 'teor/comments-20151123'
Nick Mathewson [Wed, 25 Nov 2015 14:08:15 +0000 (09:08 -0500)] 
Merge remote-tracking branch 'teor/comments-20151123'

10 years agoMerge remote-tracking branch 'atagar/man_page_fixes'
Nick Mathewson [Wed, 25 Nov 2015 14:07:02 +0000 (09:07 -0500)] 
Merge remote-tracking branch 'atagar/man_page_fixes'

10 years agoTweak gtank's sha512 patch a little
Nick Mathewson [Wed, 25 Nov 2015 14:04:17 +0000 (09:04 -0500)] 
Tweak gtank's sha512 patch a little

10 years agoMerge remote-tracking branch 'gtank/feature17663'
Nick Mathewson [Wed, 25 Nov 2015 14:00:01 +0000 (09:00 -0500)] 
Merge remote-tracking branch 'gtank/feature17663'

10 years agoMerge remote-tracking branch 'teor/feature8961-replaycache-sha256'
Nick Mathewson [Wed, 25 Nov 2015 13:55:18 +0000 (08:55 -0500)] 
Merge remote-tracking branch 'teor/feature8961-replaycache-sha256'

10 years agoMerge branch 'maint-0.2.7'
Nick Mathewson [Wed, 25 Nov 2015 13:53:46 +0000 (08:53 -0500)] 
Merge branch 'maint-0.2.7'

10 years agoFixes for tor's man page
Damian Johnson [Tue, 24 Nov 2015 02:29:19 +0000 (18:29 -0800)] 
Fixes for tor's man page

I'm adding Stem test coverage for tor's man page and in doing so ran into quite
a few issues. All of them are pretty minor (worst was misnaming a couple config
options), but still good things to fix. :P

10 years agoDrop HidServDirectoryV2 and VoteOnHidServDirectoriesV2
Damian Johnson [Tue, 24 Nov 2015 02:27:17 +0000 (18:27 -0800)] 
Drop HidServDirectoryV2 and VoteOnHidServDirectoriesV2

These options were removed from tor in July. Time to axe them from our man
page. :P

  https://gitweb.torproject.org/tor.git/commit/?id=2f8cf524ba4e565ab613504a4c41fd724d32facc

10 years agoadd changes for feature17663
George Tankersley [Tue, 24 Nov 2015 02:24:22 +0000 (02:24 +0000)] 
add changes for feature17663

10 years agoSplit 'slop' man page options to their own lines
Damian Johnson [Tue, 24 Nov 2015 02:21:38 +0000 (18:21 -0800)] 
Split 'slop' man page options to their own lines

The slop testing options are the only spot where we try to enumerate multiple
options on the same line. Changing them to each be on their own line as we do
elsewhere.

10 years agoimplement teor's comments
George Tankersley [Tue, 24 Nov 2015 02:02:13 +0000 (02:02 +0000)] 
implement teor's comments

10 years agoTestingLinkCertLifetime was misnamed as 'TestingLinkCertifetime'
Damian Johnson [Tue, 24 Nov 2015 01:51:30 +0000 (17:51 -0800)] 
TestingLinkCertLifetime was misnamed as 'TestingLinkCertifetime'

Simple typo - we were missing a letter.

10 years agoRename RecommendedPackageVersions to RecommendedPackages
Damian Johnson [Tue, 24 Nov 2015 01:44:52 +0000 (17:44 -0800)] 
Rename RecommendedPackageVersions to RecommendedPackages

A 'RecommendedPackageVersions' option doesn't exist in tor. However, it *does*
have RecommendedPackages...

  feature: https://gitweb.torproject.org/tor.git/commit/?id=c83d8381
  man addition: https://gitweb.torproject.org/tor.git/commit/?id=ddfdeb56

10 years agoadd SHA512 support to crypto
George Tankersley [Wed, 18 Nov 2015 08:37:05 +0000 (08:37 +0000)] 
add SHA512 support to crypto

10 years agoReplace 'SOCKSPort' with 'SocksPort'
Damian Johnson [Tue, 24 Nov 2015 01:32:49 +0000 (17:32 -0800)] 
Replace 'SOCKSPort' with 'SocksPort'

When applying changes from proposal 171 Nick renamed SocksPort to SOCKSPort,
and SocksListenAddress to SOCKSListenAddress...

  https://gitweb.torproject.org/tor.git/commit/?id=891ccd3cd0690e83f1dc4dde7698c3bd9d7fe98d

However, this didn't change the option itself in tor (it's still SocksPort),
and wasn't even uniform in the man page. Functionally this doesn't matter
(tor's config options are case insensitive) but this is a pretty clear
regression.

10 years agoNote in man page where users can file bugs
Damian Johnson [Tue, 24 Nov 2015 01:26:46 +0000 (17:26 -0800)] 
Note in man page where users can file bugs

In addition to inviting users to tell us about bugs, lets say where.

10 years agoControlPort's section on flags wasn't indented
Damian Johnson [Tue, 24 Nov 2015 01:25:26 +0000 (17:25 -0800)] 
ControlPort's section on flags wasn't indented

Minor formatting issue with our ControlPort entry. The part about flags wasn't
indented with the rest of its description.

10 years agoMalformed ExtORPort entry in man page
Damian Johnson [Tue, 24 Nov 2015 01:23:14 +0000 (17:23 -0800)] 
Malformed ExtORPort entry in man page

Minor formatting issue with our ExtORPort that caused its description to be on
the same line as the option (munging the two together).

10 years agoUse SHA256 in the replaycache, rather than SHA1
teor (Tim Wilson-Brown) [Mon, 23 Nov 2015 22:08:53 +0000 (09:08 +1100)] 
Use SHA256 in the replaycache, rather than SHA1

This migrates away from SHA1, and provides further hash flooding
protection on top of the randomised siphash implementation.

Add unit tests to make sure that different inputs don't have the
same hash.

10 years agoFix: use the right list in find_expiring_intro_point()
David Goulet [Mon, 23 Nov 2015 14:02:54 +0000 (09:02 -0500)] 
Fix: use the right list in find_expiring_intro_point()

The wrong list was used when looking up expired intro points in a rend
service object causing what we think could be reachability issues and
triggering a BUG log.

Fixes #16702

Signed-off-by: David Goulet <dgoulet@ev0ke.net>
10 years agofix two typos in comments
Roger Dingledine [Mon, 23 Nov 2015 12:40:13 +0000 (07:40 -0500)] 
fix two typos in comments

10 years agoFix comments to describe actual return values (crypto.c)
teor (Tim Wilson-Brown) [Mon, 23 Nov 2015 09:31:57 +0000 (20:31 +1100)] 
Fix comments to describe actual return values (crypto.c)

10 years agoFix typo in comment on crypto_add_spaces_to_fp
teor (Tim Wilson-Brown) [Mon, 23 Nov 2015 07:59:11 +0000 (18:59 +1100)] 
Fix typo in comment on crypto_add_spaces_to_fp

10 years agoComment only: crypto_seed_rng no longer has a "startup" parameter
teor (Tim Wilson-Brown) [Sun, 22 Nov 2015 23:26:07 +0000 (10:26 +1100)] 
Comment only: crypto_seed_rng no longer has a "startup" parameter

10 years agofix "make check-spaces"
Nick Mathewson [Fri, 20 Nov 2015 15:52:56 +0000 (10:52 -0500)] 
fix "make check-spaces"

10 years agoFix compilation warnings
Nick Mathewson [Fri, 20 Nov 2015 15:51:19 +0000 (10:51 -0500)] 
Fix compilation warnings

10 years agoMerge branch 'getinfo-private-exitpolicy-v4-squashed'
Nick Mathewson [Fri, 20 Nov 2015 15:48:28 +0000 (10:48 -0500)] 
Merge branch 'getinfo-private-exitpolicy-v4-squashed'

10 years agoAdd controller getinfo exit-policy/reject-private
teor (Tim Wilson-Brown) [Mon, 16 Nov 2015 09:40:17 +0000 (20:40 +1100)] 
Add controller getinfo exit-policy/reject-private

exit-policy/reject-private lists the reject rules added by
ExitPolicyRejectPrivate. This makes it easier for stem to
display exit policies.

Add unit tests for getinfo exit-policy/*.

Completes ticket #17183. Patch by "teor".

10 years agoMerge branch 'maint-0.2.7'
Nick Mathewson [Fri, 20 Nov 2015 15:28:43 +0000 (10:28 -0500)] 
Merge branch 'maint-0.2.7'

10 years agobump version to 0.2.7-dev
Nick Mathewson [Fri, 20 Nov 2015 15:27:35 +0000 (10:27 -0500)] 
bump version to 0.2.7-dev

10 years agoRefactor router_dump_exit_policy_to_string
teor (Tim Wilson-Brown) [Mon, 16 Nov 2015 12:02:49 +0000 (23:02 +1100)] 
Refactor router_dump_exit_policy_to_string

Split out policy_dump_to_string to use it in getinfo_helper_policies.

10 years agoAdd changes file for ExitPolicyRejectPrivate outbound and port
teor (Tim Wilson-Brown) [Mon, 16 Nov 2015 08:58:36 +0000 (19:58 +1100)] 
Add changes file for ExitPolicyRejectPrivate outbound and port

10 years agoman update: ExitPolicyRejectPrivate outbound and port addresses
teor (Tim Wilson-Brown) [Mon, 16 Nov 2015 07:37:01 +0000 (18:37 +1100)] 
man update: ExitPolicyRejectPrivate outbound and port addresses

ExitPolicyRejectPrivate now rejects addresses configured via
OutboundBindAddress and any port options, such as ORPort and DirPort.

10 years agoBlock OutboundBindAddressIPv[4|6]_ and configured ports on exit relays
teor (Tim Wilson-Brown) [Mon, 16 Nov 2015 04:54:57 +0000 (15:54 +1100)] 
Block OutboundBindAddressIPv[4|6]_ and configured ports on exit relays

Modify policies_parse_exit_policy_reject_private so it also blocks
the addresses configured for OutboundBindAddressIPv4_ and
OutboundBindAddressIPv6_, and any publicly routable port addresses
on exit relays.

Add and update unit tests for these functions.

10 years agoAdd unit tests for policies_parse_exit_policy_reject_private
teor (Tim Wilson-Brown) [Mon, 16 Nov 2015 04:36:28 +0000 (15:36 +1100)] 
Add unit tests for policies_parse_exit_policy_reject_private

Test that policies_parse_exit_policy_reject_private rejects supplied
IPv4 and IPv6 relay addresses, and the addresses of local interfaces.

10 years agoRefactor policies_parse_exit_policy_internal
teor (Tim Wilson-Brown) [Mon, 16 Nov 2015 02:58:26 +0000 (13:58 +1100)] 
Refactor policies_parse_exit_policy_internal

Move the code that rejects publicly routable exit relay addresses
to policies_parse_exit_policy_reject_private. Add
addr_policy_append_reject_addr_list and use it to reject interface
addresses.

This removes the duplicate reject checks on local_address and
ipv6_local_address, but duplicates will be removed by
exit_policy_remove_redundancies at the end of the function.

This also removes the info-level logging on rejected interface
addresses. Instead, log a debug-level message in
addr_policy_append_reject_addr.

This simplifies policies_parse_exit_policy_internal and prepares for
reporting these addresses over the control port in #17183.

10 years agoMerge remote-tracking branch 'teor/bug17632-no-ipv4-no-localhost-squashed'
Nick Mathewson [Thu, 19 Nov 2015 16:19:31 +0000 (11:19 -0500)] 
Merge remote-tracking branch 'teor/bug17632-no-ipv4-no-localhost-squashed'

10 years agoMerge remote-tracking branch 'teor/bug17638-ipv6-ersatz-socketpair'
Nick Mathewson [Thu, 19 Nov 2015 15:48:40 +0000 (10:48 -0500)] 
Merge remote-tracking branch 'teor/bug17638-ipv6-ersatz-socketpair'

10 years agoMerge remote-tracking branch 'public/decouple_conn_attach_2'
Nick Mathewson [Thu, 19 Nov 2015 15:44:31 +0000 (10:44 -0500)] 
Merge remote-tracking branch 'public/decouple_conn_attach_2'

10 years agoFixup #17638: ignore EINVAL from FreeBSD jails without ::1
teor (Tim Wilson-Brown) [Thu, 19 Nov 2015 08:20:01 +0000 (19:20 +1100)] 
Fixup #17638: ignore EINVAL from FreeBSD jails without ::1

In my testing, an IPv6-only FreeBSD jail without ::1 returned EINVAL
from tor_ersatz_socketpair. Let's not fail the unit test because of
this - it would only ever use tor_socketpair() anyway.

10 years agoMake tor_ersatz_socketpair work on IPv6-only systems
teor (Tim Wilson-Brown) [Thu, 19 Nov 2015 08:08:22 +0000 (19:08 +1100)] 
Make tor_ersatz_socketpair work on IPv6-only systems

(But it won't work on some systems without IPv4/IPv6 localhost
(some BSD jails) by design, to avoid creating sockets on routable
IP addresses. However, those systems likely have the AF_UNIX socketpair,
which tor prefers.)

Fixes bug #17638; bugfix on a very early tor version,
earlier than 22dba27d8dd5 (23 Nov 2004) / svn:r2943.

Patch by "teor".

10 years agoMerge remote-tracking branch 'teor/bug17632-no-ipv4-no-localhost'
Nick Mathewson [Wed, 18 Nov 2015 20:02:45 +0000 (15:02 -0500)] 
Merge remote-tracking branch 'teor/bug17632-no-ipv4-no-localhost'

10 years agoUpdate comments in get_interface_addresses_ioctl
teor (Tim Wilson-Brown) [Wed, 18 Nov 2015 12:30:25 +0000 (23:30 +1100)] 
Update comments in get_interface_addresses_ioctl

Comment-only change noting platforms that can return IPv6
addresses from SIOCGIFCONF (or SIOCGLIFCONF).

10 years agoFix unit tests on systems without IPv4 or localhost addresses
teor (Tim Wilson-Brown) [Wed, 18 Nov 2015 12:25:21 +0000 (23:25 +1100)] 
Fix unit tests on systems without IPv4 or localhost addresses

Make unit tests pass on IPv6-only systems, and systems without
localhost addresses (like some FreeBSD jails).

Fixes:
* get_if_addrs_ifaddrs: systems without localhost
* get_if_addrs_ioctl: only works on IPv4 systems
* socket: check IPv4 and IPv6, skip on EPROTONOSUPPORT
* socketpair_ersatz: uses IPv4, skip on EPROTONOSUPPORT

Fixes bug #17632; bugfix on unit tests in 0.2.7.3-rc.
c464a367728d was a partial fix for this issue in #17255;
it was released in unit tests in 0.2.7.4-rc.

Patch by "teor".

10 years agoReally Really Fixup 86eba14ac549: Windows support, error return values
teor (Tim Wilson-Brown) [Wed, 18 Nov 2015 13:13:58 +0000 (00:13 +1100)] 
Really Really Fixup 86eba14ac549: Windows support, error return values

10 years agoReally Fixup 86eba14ac549: error return values are negative
teor (Tim Wilson-Brown) [Wed, 18 Nov 2015 12:54:26 +0000 (23:54 +1100)] 
Really Fixup 86eba14ac549: error return values are negative

10 years agoFixup 86eba14ac549: add errno.h for EPROTONOSUPPORT
teor (Tim Wilson-Brown) [Wed, 18 Nov 2015 12:47:12 +0000 (23:47 +1100)] 
Fixup 86eba14ac549: add errno.h for EPROTONOSUPPORT