]> git.ipfire.org Git - thirdparty/tor.git/log
thirdparty/tor.git
6 years agocircpad: some more logging changes.
George Kadianakis [Tue, 11 Jun 2019 11:28:38 +0000 (14:28 +0300)] 
circpad: some more logging changes.

- Add an info log when receiving a STOP command.
- Keep warning if we receive padding from a wrong hop.

6 years agoMore LOG_PROTOCOL_WARN.
Mike Perry [Wed, 5 Jun 2019 19:33:39 +0000 (12:33 -0700)] 
More LOG_PROTOCOL_WARN.

Make origin-side messages about padding negotiation failure into
LOG_PROTOCOL_WARN.

I'm not sure I like this either.. But the negotiation refusal case might
happen naturally due to consensus drift, and is functionally no different than
a corrupted cell.

6 years agoMake some warns into protocol warns
Mike Perry [Thu, 30 May 2019 23:20:56 +0000 (16:20 -0700)] 
Make some warns into protocol warns

I'm not sure I agree with this option.

6 years agoBug 30649: Changes file.
Mike Perry [Thu, 30 May 2019 22:18:16 +0000 (15:18 -0700)] 
Bug 30649: Changes file.

6 years agoBug 30649: Check that machine is absent before warn
Mike Perry [Thu, 30 May 2019 22:15:01 +0000 (15:15 -0700)] 
Bug 30649: Check that machine is absent before warn

6 years agoMerge branch 'tor-github/pr/1059'
George Kadianakis [Thu, 30 May 2019 18:01:59 +0000 (21:01 +0300)] 
Merge branch 'tor-github/pr/1059'

6 years agoMerge branch 'tor-github/pr/1057'
David Goulet [Thu, 30 May 2019 16:58:35 +0000 (12:58 -0400)] 
Merge branch 'tor-github/pr/1057'

6 years agochanges file for 30629
Nick Mathewson [Thu, 30 May 2019 16:58:12 +0000 (12:58 -0400)] 
changes file for 30629

6 years agoMerge branch 'tor-github/pr/1055'
David Goulet [Thu, 30 May 2019 16:53:52 +0000 (12:53 -0400)] 
Merge branch 'tor-github/pr/1055'

6 years agoMerge branch 'tor-github/pr/1054'
David Goulet [Thu, 30 May 2019 13:59:21 +0000 (09:59 -0400)] 
Merge branch 'tor-github/pr/1054'

6 years agoMerge branch 'tor-github/pr/1049'
David Goulet [Thu, 30 May 2019 13:56:18 +0000 (09:56 -0400)] 
Merge branch 'tor-github/pr/1049'

6 years agoMerge branch 'tor-github/pr/1032'
George Kadianakis [Wed, 29 May 2019 18:28:04 +0000 (21:28 +0300)] 
Merge branch 'tor-github/pr/1032'

6 years agoMerge branch 'tor-github/pr/1037'
George Kadianakis [Wed, 29 May 2019 18:25:32 +0000 (21:25 +0300)] 
Merge branch 'tor-github/pr/1037'

6 years agoMerge branch 'maint-0.4.0'
George Kadianakis [Wed, 29 May 2019 18:20:02 +0000 (21:20 +0300)] 
Merge branch 'maint-0.4.0'

6 years agoMerge branch 'tor-github/pr/924' into maint-0.4.0
George Kadianakis [Wed, 29 May 2019 18:19:56 +0000 (21:19 +0300)] 
Merge branch 'tor-github/pr/924' into maint-0.4.0

6 years agoShutdown libevent _after_ the subsystems.
Nick Mathewson [Wed, 29 May 2019 15:25:47 +0000 (11:25 -0400)] 
Shutdown libevent _after_ the subsystems.

This is necessary since shutting down libevent frees some pointer
that the subsystems want to free themselves. A longer term solution
will be to turn the evloop module into a subsystem itself, but for
now it is best to do the minimal fix.

Fixes bug 30629; bugfix on 0.4.1.1-alpha.

6 years agoRemove want_cmddata from HSFETCH, which does not in fact want data
Nick Mathewson [Wed, 29 May 2019 14:10:57 +0000 (10:10 -0400)] 
Remove want_cmddata from HSFETCH, which does not in fact want data

This looks a copy-and-paste error to me.  Fixes bug 30646; bugfix on
0.4.1.1-alpha.

6 years agoMerge branch 'ticket30561_029' into ticket30561_035
Nick Mathewson [Wed, 29 May 2019 13:43:20 +0000 (09:43 -0400)] 
Merge branch 'ticket30561_029' into ticket30561_035

6 years agoTweak comments in tor_vasprintf(), and add a changes file for 30651
Nick Mathewson [Wed, 29 May 2019 13:38:32 +0000 (09:38 -0400)] 
Tweak comments in tor_vasprintf(), and add a changes file for 30651

6 years agoFixed tor_vasprintf on systems without vasprintf.
Tobias Stoeckmann [Wed, 29 May 2019 13:33:24 +0000 (09:33 -0400)] 
Fixed tor_vasprintf on systems without vasprintf.

If tor is compiled on a system with neither vasprintf nor _vscprintf,
the fallback implementation exposes a logic flaw which prevents
proper usage of strings longer than 127 characters:

* tor_vsnprintf returns -1 if supplied buffer is not large enough,
  but tor_vasprintf uses this function to retrieve required length
* the result of tor_vsnprintf is not properly checked for negative
  return values

Both aspects together could in theory lead to exposure of uninitialized
stack memory in the resulting string. This requires an invalid format
string or data that exceeds integer limitations.

Fortunately tor is not even able to run with this implementation because
it runs into asserts early on during startup. Also the unit tests fail
during a "make check" run.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
  [backported to 0.2.9 by nickm]

6 years agoChanges file for bug 30614
Nick Mathewson [Wed, 29 May 2019 13:05:26 +0000 (09:05 -0400)] 
Changes file for bug 30614

6 years agoUse MAP_INHERIT_ZERO or MAP_INHERIT_NONE if available.
Taylor R Campbell [Sat, 25 May 2019 03:55:24 +0000 (03:55 +0000)] 
Use MAP_INHERIT_ZERO or MAP_INHERIT_NONE if available.

Fixes assertion failure in tests on NetBSD:

slow/prob_distr/stochastic_log_logistic: [forking] May 25 03:56:58.091 [err] tor_assertion_failed_(): Bug: src/lib/crypt_ops/crypto_rand_fast.c:184: crypto_fast_rng_new_from_seed: Assertion inherit != INHERIT_RES_KEEP failed; aborting. (on Tor 0.4.1.1-alpha-dev 29955f13e5bc8e61)
May 25 03:56:58.091 [err] Bug: Assertion inherit != INHERIT_RES_KEEP failed in crypto_fast_rng_new_from_seed at src/lib/crypt_ops/crypto_rand_fast.c:184: . (Stack trace not available) (on Tor 0.4.1.1-alpha-dev 29955f13e5bc8e61)
[Lost connection!]

6 years agoTrivial fix for a trivial warning with gcc 9.1.1
Nick Mathewson [Tue, 28 May 2019 23:45:50 +0000 (19:45 -0400)] 
Trivial fix for a trivial warning with gcc 9.1.1

Fix on 4e3d144fb0940d8ee5a89427d471ea3656e8e122; bug not in any
released Tor.

6 years agoMerge branch 'tor-github/pr/1047'
David Goulet [Tue, 28 May 2019 18:59:07 +0000 (14:59 -0400)] 
Merge branch 'tor-github/pr/1047'

6 years agoMerge branch 'tor-github/pr/1042'
George Kadianakis [Mon, 27 May 2019 11:22:01 +0000 (14:22 +0300)] 
Merge branch 'tor-github/pr/1042'

6 years agoMerge branch 'tor-github/pr/1043'
George Kadianakis [Mon, 27 May 2019 11:20:51 +0000 (14:20 +0300)] 
Merge branch 'tor-github/pr/1043'

6 years agoTests for deciding how full our relay cells should be
Nick Mathewson [Thu, 23 May 2019 13:29:24 +0000 (09:29 -0400)] 
Tests for deciding how full our relay cells should be

6 years agoMake sure that we send at least some random data in RELAY_DATA cells
Nick Mathewson [Fri, 17 May 2019 15:03:16 +0000 (11:03 -0400)] 
Make sure that we send at least some random data in RELAY_DATA cells

Proposal 289 prevents SENDME-flooding by requiring the other side to
authenticate the data it has received.  But this data won't actually
be random if they are downloading a known resource.  "No problem",
we said, "let's fell the empty parts of our cells with some
randomness!" and we did that in #26871.

Unfortunately, if the relay data payloads are all completely full,
there won't be any empty parts for us to randomize.

Therefore, we now pick random "randomness windows" between
CIRCWINDOW_INCREMENT/2 and CIRCWINDOW_INCREMENT. We remember whether we have
sent a cell containing at least 16 bytes of randomness in that window.  If we
haven't, then when the window is exhausted, we send one.  (This window approach
is designed to lower the number of rng checks we have to do.  The number 16 is
pulled out of a hat to change the attacker's guessing difficulty to
"impossible".)

Implements 28646.

6 years agotrivial whitespace fixes
Roger Dingledine [Sun, 26 May 2019 21:32:42 +0000 (17:32 -0400)] 
trivial whitespace fixes

6 years agochanges file for test coverage
Nick Mathewson [Fri, 24 May 2019 11:42:59 +0000 (07:42 -0400)] 
changes file for test coverage

6 years agocov-test-determinism: use the same RNG seed as in travis.yml
Nick Mathewson [Thu, 23 May 2019 18:36:01 +0000 (14:36 -0400)] 
cov-test-determinism: use the same RNG seed as in travis.yml

We added this facility so that we could get deterministic PRNG
behavior for coverage testing on tests that use a replaced PRNG.
We need to have our coverage determinism tool test for this as well.

6 years agoCoverage: do not include test-rebind in coverage builds.
Nick Mathewson [Wed, 15 May 2019 18:58:46 +0000 (14:58 -0400)] 
Coverage: do not include test-rebind in coverage builds.

Because it invokes the Tor mainloop, it does unpredictable things to
test coverage of a lot of code that it doesn't actually test at
all.  (It is more an integration test than anything else.)

6 years agoIn coverage builds, use branch-free timeradd() and timersub()
Nick Mathewson [Wed, 15 May 2019 12:28:25 +0000 (08:28 -0400)] 
In coverage builds, use branch-free timeradd() and timersub()

The ordinary definitions of timeradd() and timersub() contain a
branch. However, in coverage builds, this means that we get spurious
complaints about partially covered basic blocks, in a way that makes
our coverage determinism harder to check.

6 years agoIn coverage builds, avoid basic-block complexity in log_debug
Nick Mathewson [Wed, 15 May 2019 12:27:02 +0000 (08:27 -0400)] 
In coverage builds, avoid basic-block complexity in log_debug

Ordinarily we skip calling log_fn(LOG_DEBUG,...) if debug logging is
completely disabled.  However, in coverage builds, this means that
we get spurious complaints about partially covered basic blocks, in
a way that makes our coverage determinism harder to check.

6 years agoMerge branch 'tor-github/pr/1022'
David Goulet [Thu, 23 May 2019 13:50:28 +0000 (09:50 -0400)] 
Merge branch 'tor-github/pr/1022'

6 years agoMerge branch 'tor-github/pr/1034'
David Goulet [Thu, 23 May 2019 13:40:07 +0000 (09:40 -0400)] 
Merge branch 'tor-github/pr/1034'

6 years agoMerge branch 'tor-github/pr/988'
David Goulet [Thu, 23 May 2019 13:30:36 +0000 (09:30 -0400)] 
Merge branch 'tor-github/pr/988'

6 years agoExtract length-deciding function from package_raw_inbuf.
Nick Mathewson [Fri, 17 May 2019 14:29:35 +0000 (10:29 -0400)] 
Extract length-deciding function from package_raw_inbuf.

6 years agorefactor logic to decide how much to package from inbuf
Roger Dingledine [Thu, 19 Jul 2018 01:00:27 +0000 (21:00 -0400)] 
refactor logic to decide how much to package from inbuf

no actual changes in behavior

6 years agoOnly reject POSTDESCRIPTOR purpose= when the purpose is unrecognized
Nick Mathewson [Thu, 23 May 2019 12:24:29 +0000 (08:24 -0400)] 
Only reject POSTDESCRIPTOR purpose= when the purpose is unrecognized

Fixes bug 30580; bugfix on 0.4.1.1-alpha.

6 years agoNow this repository is full of 0.4.1.1-alpha-dev
Nick Mathewson [Wed, 22 May 2019 22:07:29 +0000 (18:07 -0400)] 
Now this repository is full of 0.4.1.1-alpha-dev

6 years agocircuitpadding tests: Use tt_i64_op() to compare int64_t values tor-0.4.1.1-alpha
Nick Mathewson [Wed, 22 May 2019 19:19:24 +0000 (15:19 -0400)] 
circuitpadding tests: Use tt_i64_op() to compare int64_t values

Bug not in any released Tor.

6 years agoMore 0.4.1.1-alpha hangelogs edits
Nick Mathewson [Wed, 22 May 2019 17:57:34 +0000 (13:57 -0400)] 
More 0.4.1.1-alpha hangelogs edits

(credit to seborn here)

6 years agoFold last entry into changelog
Nick Mathewson [Wed, 22 May 2019 16:00:20 +0000 (12:00 -0400)] 
Fold last entry into changelog

6 years agoBump to 0.4.1.1-alpha
Nick Mathewson [Wed, 22 May 2019 15:56:02 +0000 (11:56 -0400)] 
Bump to 0.4.1.1-alpha

6 years agoMerge remote-tracking branch 'dgoulet/ticket30454_035_01'
Nick Mathewson [Wed, 22 May 2019 15:50:46 +0000 (11:50 -0400)] 
Merge remote-tracking branch 'dgoulet/ticket30454_035_01'

6 years agoMerge branch 'ticket30428_041_02_squashed'
Nick Mathewson [Wed, 22 May 2019 15:48:43 +0000 (11:48 -0400)] 
Merge branch 'ticket30428_041_02_squashed'

6 years agosendme: Add non fatal asserts for extra safety
David Goulet [Wed, 22 May 2019 15:05:36 +0000 (11:05 -0400)] 
sendme: Add non fatal asserts for extra safety

Two non fatal asserts are added in this commit. First one is to see if the
SENDME digest list kept on the circuit for validation ever grows bigger than
the maximum number of expected SENDME on a circuit (currently 10).

The second one is to know if we ever send more than one SENDME at a time on a
circuit. In theory, we shouldn't but if we ever do, the v1 implementation
wouldn't work because we only keep one single cell digest (the previous cell
to the SENDME) on the circuit/cpath. Thus, sending two SENDME consecutively
will lead to a mismatch on the other side because the same cell digest would
be use and thus the circuit would collapse.

Finally, add an extra debug log in case we emit a v0 which also includes the
consensus emit version in that case.

Part of #30428

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agosendme: Always pop last SENDME digest from circuit
David Goulet [Wed, 22 May 2019 14:37:27 +0000 (10:37 -0400)] 
sendme: Always pop last SENDME digest from circuit

We must not accumulate digests on the circuit if the other end point is using
another SENDME version that is not using those digests like v0.

This commit makes it that we always pop the digest regardless of the version.

Part of #30428

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agosendme: Clarify how sendme_circuit_cell_is_next() works
David Goulet [Tue, 21 May 2019 19:19:30 +0000 (15:19 -0400)] 
sendme: Clarify how sendme_circuit_cell_is_next() works

Commit 4ef8470fa5480d3b was actually reverted before because in the end we
needed to do this minus 1 check on the window.

This commit clarifies that in the code, takes the useful comment changes from
4ef8470fa5480d3b and makes sendme_circuit_cell_is_next() private since it
behaves in a very specific way that one external caller might expect.

Part of #30428.

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agosendme: Properly record SENDMEs on both edges
David Goulet [Wed, 15 May 2019 14:16:05 +0000 (10:16 -0400)] 
sendme: Properly record SENDMEs on both edges

Turns out that we were only recording the "b_digest" but to have
bidirectionnal authenticated SENDMEs, we need to use the "f_digest" in the
forward cell situation.

Because of the cpath refactoring, this commit plays with the crypt_path_ and
relay_crypto_t API a little bit in order to respect the abstractions.

Previously, we would record the cell digest as the SENDME digest in the
decrypt cell function but to avoid code duplication (both directions needs to
record), we now do that right after iff the cell is recognized (at the edge).
It is now done in circuit_receive_relay_cell() instead.

We now also record the cell digest as the SENDME digest in both relay cell
encryption functions since they are split depending on the direction.
relay_encrypt_cell_outbound() and relay_encrypt_cell_inbound() need to
consider recording the cell digest depending on their direction (f vs b
digest).

Fixes #30428

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agosendme: Never fallback to v0 if unknown version
David Goulet [Tue, 7 May 2019 13:44:10 +0000 (09:44 -0400)] 
sendme: Never fallback to v0 if unknown version

There was a missing cell version check against our max supported version. In
other words, we do not fallback to v0 anymore in case we do know the SENDME
version.

We can either handle it or not, never fallback to the unauthenticated version
in order to avoid gaming the authenticated logic.

Add a unit tests making sure we properly test that and also test that we can
always handle the default emit and accepted versions.

Fixes #30428

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agosendme: Validate v1 SENDMEs on both client and exit side
David Goulet [Tue, 7 May 2019 13:19:41 +0000 (09:19 -0400)] 
sendme: Validate v1 SENDMEs on both client and exit side

The validation of the SENDME cell is now done as the very first thing when
receiving it for both client and exit. On failure to validate, the circuit is
closed as detailed in the specification.

Part of #30428

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agosendme: Record cell digest on both client and exit
David Goulet [Tue, 7 May 2019 13:16:39 +0000 (09:16 -0400)] 
sendme: Record cell digest on both client and exit

It turns out that only the exit side is validating the authenticated SENDME v1
logic and never the client side. Which means that if a client ever uploaded
data towards an exit, the authenticated SENDME logic wouldn't apply.

For this to work, we have to record the cell digest client side as well which
introduced a new function that supports both type of edges.

This also removes a test that is not valid anymore which was that we didn't
allow cell recording on an origin circuit (client).

Part of #30428

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agoMerge remote-tracking branch 'nickm/ticket30454_034_01_squashed' into ticket30454_035_01
David Goulet [Wed, 22 May 2019 15:43:55 +0000 (11:43 -0400)] 
Merge remote-tracking branch 'nickm/ticket30454_034_01_squashed' into ticket30454_035_01

6 years agoEdit changelog entries for clarity and conciseness
Nick Mathewson [Wed, 22 May 2019 15:06:37 +0000 (11:06 -0400)] 
Edit changelog entries for clarity and conciseness

6 years agolight movement and editing on changelog
Nick Mathewson [Tue, 21 May 2019 23:18:58 +0000 (19:18 -0400)] 
light movement and editing on changelog

6 years agoAdd a new "autostyle" make target to run all of our reformatting
Nick Mathewson [Mon, 20 May 2019 16:08:30 +0000 (12:08 -0400)] 
Add a new "autostyle" make target to run all of our reformatting

Closes ticket 30539.

6 years agoupdateCopyright: look at the current year.
Nick Mathewson [Mon, 20 May 2019 16:02:20 +0000 (12:02 -0400)] 
updateCopyright: look at the current year.

6 years agorectify_include_paths: warn instead of aborting on duplicate headers
Nick Mathewson [Mon, 20 May 2019 15:52:45 +0000 (11:52 -0400)] 
rectify_include_paths: warn instead of aborting on duplicate headers

We have two sendme.h files at the moment; we should fix that, but
not in this branch.

6 years agoIn microdesc_cache_reload(), set journal length to length of string we read
rl1987 [Fri, 17 May 2019 16:44:45 +0000 (19:44 +0300)] 
In microdesc_cache_reload(), set journal length to length of string we read

Hopefully this will fix CID 1444769.

6 years agohs: Remove hs_cell_onion_key_type_t enum
David Goulet [Wed, 15 May 2019 19:30:29 +0000 (15:30 -0400)] 
hs: Remove hs_cell_onion_key_type_t enum

Unify this with the trunnel ABI so we don't duplicate.

Part of #30454

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agotrunnel: Remove INTRODUCE1 status code IN statement
David Goulet [Wed, 15 May 2019 19:27:27 +0000 (15:27 -0400)] 
trunnel: Remove INTRODUCE1 status code IN statement

We want to support parsing a cell with unknown status code so we are forward
compatible.

Part of #30454

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agohs: Add changes file for #30454
David Goulet [Thu, 9 May 2019 17:23:14 +0000 (13:23 -0400)] 
hs: Add changes file for #30454

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agohs: Remove hs_intro_auth_key_type_t enum
David Goulet [Thu, 9 May 2019 17:09:44 +0000 (13:09 -0400)] 
hs: Remove hs_intro_auth_key_type_t enum

Like the previous commit about the INTRODUCE_ACK status code, change all auth
key type to use the one defined in the trunnel file.

Standardize the use of these auth type to a common ABI.

Part of #30454

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agohs: Get rid of duplicate hs_cell_introd_ack_status_t
David Goulet [Thu, 9 May 2019 17:01:15 +0000 (13:01 -0400)] 
hs: Get rid of duplicate hs_cell_introd_ack_status_t

This enum was the exact same as hs_intro_ack_status_t that was removed at the
previous commit. It was used client side when parsing the INTRODUCE_ACK cell.

Now, the entire code dealing with the INTRODUCE_ACK cell (both sending and
receiving) have been modified to all use the same ABI defined in the trunnel
introduce1 file.

Finally, the client will default to the normal behavior when receiving an
unknown NACK status code which is to note down that we've failed and re-extend
to the next intro point. This way, unknown status code won't trigger a
different behavior client side.

Part of #30454.

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agohs: Define INTRODUCE_ACK status code in trunnel
David Goulet [Thu, 9 May 2019 16:55:52 +0000 (12:55 -0400)] 
hs: Define INTRODUCE_ACK status code in trunnel

Remove the hs_intro_ack_status_t enum and move the value into trunnel. Only
use these values from now on in the intro point code.

Interestingly enough, the client side also re-define these values in hs_cell.h
with the hs_cell_introd_ack_status_t enum. Next commit will fix that and force
to use the trunnel ABI.

Part of #30454

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agoDon't forget to use the mutex in testing_enable_prefilled_rng()
rl1987 [Mon, 6 May 2019 14:21:11 +0000 (17:21 +0300)] 
Don't forget to use the mutex in testing_enable_prefilled_rng()

6 years agoInitial changelog draft for 0.4.1.1-alpha (mostly automated)
Nick Mathewson [Fri, 17 May 2019 14:12:07 +0000 (10:12 -0400)] 
Initial changelog draft for 0.4.1.1-alpha (mostly automated)

6 years agoOOM-purge the DNS cache one part at a time
Nick Mathewson [Fri, 17 May 2019 14:03:41 +0000 (10:03 -0400)] 
OOM-purge the DNS cache one part at a time

Previously we purged it in 1-hour increments -- but one-hour is the
maximum TTL for the cache!  Now we do it in 25%-TTL increments.

Fixes bug 29617; bugfix on 0.3.5.1-alpha.

6 years agoMerge remote-tracking branch 'tor-github/pr/1033'
Nick Mathewson [Fri, 17 May 2019 12:18:20 +0000 (08:18 -0400)] 
Merge remote-tracking branch 'tor-github/pr/1033'

6 years agoMerge branch 'maint-0.4.0'
Nick Mathewson [Fri, 17 May 2019 12:10:17 +0000 (08:10 -0400)] 
Merge branch 'maint-0.4.0'

6 years agoMerge branch 'maint-0.3.5' into maint-0.4.0
Nick Mathewson [Fri, 17 May 2019 12:10:16 +0000 (08:10 -0400)] 
Merge branch 'maint-0.3.5' into maint-0.4.0

6 years agoMerge branch 'maint-0.3.4' into maint-0.3.5
Nick Mathewson [Fri, 17 May 2019 12:10:16 +0000 (08:10 -0400)] 
Merge branch 'maint-0.3.4' into maint-0.3.5

6 years agoMerge branch 'maint-0.2.9' into maint-0.3.4 maint-0.3.4
Nick Mathewson [Fri, 17 May 2019 12:10:15 +0000 (08:10 -0400)] 
Merge branch 'maint-0.2.9' into maint-0.3.4

6 years agoUpdate geoip and geoip6 to the May 13 2019 database.
Karsten Loesing [Fri, 17 May 2019 06:52:13 +0000 (08:52 +0200)] 
Update geoip and geoip6 to the May 13 2019 database.

6 years agoYes, these functions really do have to be this long.
Mike Perry [Thu, 16 May 2019 20:29:09 +0000 (20:29 +0000)] 
Yes, these functions really do have to be this long.

6 years agoChanges file.
Mike Perry [Thu, 16 May 2019 20:25:25 +0000 (20:25 +0000)] 
Changes file.

6 years agoRefactor rend machines, stage 2/2: Move histogram code.
Mike Perry [Thu, 16 May 2019 19:42:45 +0000 (19:42 +0000)] 
Refactor rend machines, stage 2/2: Move histogram code.

Comment clarifications now that the code is seperated. It's the same code, but
its doing this for different reasons on each side.

6 years agoRefactor rend machines, stage 1/2: Move state transition code.
Mike Perry [Thu, 16 May 2019 19:30:42 +0000 (19:30 +0000)] 
Refactor rend machines, stage 1/2: Move state transition code.

6 years agochanges file for coverity fixes in tests (30150)
Nick Mathewson [Thu, 16 May 2019 19:38:08 +0000 (15:38 -0400)] 
changes file for coverity fixes in tests (30150)

6 years agotest_channel_listener: free 'chan' explicitly
Nick Mathewson [Thu, 16 May 2019 19:34:28 +0000 (15:34 -0400)] 
test_channel_listener: free 'chan' explicitly

This should fix CID 1437442, where coverity can't tell that
channel_free_all() frees the fake channel we allocated.

6 years agoRefactor intro machines, stage 2/2: Move histogram code.
Mike Perry [Thu, 16 May 2019 19:17:31 +0000 (19:17 +0000)] 
Refactor intro machines, stage 2/2: Move histogram code.

The client side had garbage histograms and deadcode here, too. That code has
been removed.

The tests have also been updated to properly test the intro circ by sending
padding from the relay side to the client, and verifying that both shut down
when padding was up. (The tests previously erroneously tested only the client
side of intro circs, which actually were supposed to be doing nothing).

6 years agohs tests: explicitly free 'service' variable.
Nick Mathewson [Thu, 16 May 2019 19:21:18 +0000 (15:21 -0400)] 
hs tests: explicitly free 'service' variable.

This should fix about 15 CID issues, where coverity can't tell that
hs_free_all() frees the service we allocated.

6 years agoRefactor intro machines, stage 1/2: Move state transition code.
Mike Perry [Thu, 16 May 2019 18:41:21 +0000 (18:41 +0000)] 
Refactor intro machines, stage 1/2: Move state transition code.

This just moves the state transition directives into the proper client/relay
side functions. It also allows us to remove some dead-code from the client
side (since the client doesn't send padding).

6 years agorng_test_helpers: add a needless lock/unlock pair to please coverity
Nick Mathewson [Thu, 16 May 2019 19:03:54 +0000 (15:03 -0400)] 
rng_test_helpers: add a needless lock/unlock pair to please coverity

Fix for CID 1444908

6 years agoImprove logging around the circpad module..
George Kadianakis [Thu, 28 Mar 2019 13:38:33 +0000 (15:38 +0200)] 
Improve logging around the circpad module..

- Add some more useful logs for future debugging.

- Stop usage of circpad_state_to_string(). It's innacurate.

- Reduce severity and fix up log domain of some logging messages.

6 years agoAdd unittests for the new machines.
George Kadianakis [Thu, 28 Mar 2019 13:39:08 +0000 (15:39 +0200)] 
Add unittests for the new machines.

6 years agoAdd client-side onion service circuit hiding machines.
George Kadianakis [Thu, 16 May 2019 11:02:16 +0000 (14:02 +0300)] 
Add client-side onion service circuit hiding machines.

6 years agoCorrectly handle machines out of tokens that have not closed yet.
George Kadianakis [Wed, 17 Apr 2019 10:23:23 +0000 (13:23 +0300)] 
Correctly handle machines out of tokens that have not closed yet.

Perhaps the machine on the other side is still not done.

6 years agoIntroduce circpad free_all() function.
George Kadianakis [Wed, 17 Apr 2019 11:52:51 +0000 (14:52 +0300)] 
Introduce circpad free_all() function.

6 years agoGenerate non-padding circpad events for PADDING_NEGOTIATE(D).
George Kadianakis [Fri, 12 Apr 2019 20:42:46 +0000 (23:42 +0300)] 
Generate non-padding circpad events for PADDING_NEGOTIATE(D).

As part of our machines, we need to know when a PADDING_NEGOATIATE(D) cell gets
sent out, so we add an event for this.

6 years agoMake register_padding_machine part of the public API.
George Kadianakis [Wed, 20 Mar 2019 15:41:10 +0000 (17:41 +0200)] 
Make register_padding_machine part of the public API.

We are gonna use this function to register our new machine.

6 years agoBehave correctly when state->max_length is zero.
George Kadianakis [Wed, 20 Mar 2019 15:42:56 +0000 (17:42 +0200)] 
Behave correctly when state->max_length is zero.

6 years agofix typos, whitespace, comments
Roger Dingledine [Thu, 16 May 2019 03:20:03 +0000 (23:20 -0400)] 
fix typos, whitespace, comments

6 years agoMerge branch 'tor-github/pr/1002'
George Kadianakis [Wed, 15 May 2019 20:23:18 +0000 (23:23 +0300)] 
Merge branch 'tor-github/pr/1002'

6 years agoMerge branch 'tor-github/pr/1021'
David Goulet [Wed, 15 May 2019 19:35:22 +0000 (15:35 -0400)] 
Merge branch 'tor-github/pr/1021'

Signed-off-by: David Goulet <dgoulet@torproject.org>
6 years agoMerge branch 'bug28780-squashed3-rebased' into bug28780_rebase
George Kadianakis [Wed, 15 May 2019 13:46:51 +0000 (16:46 +0300)] 
Merge branch 'bug28780-squashed3-rebased' into bug28780_rebase

6 years agoThe practracker beatings will continue until the files get smaller.
Mike Perry [Wed, 15 May 2019 04:47:50 +0000 (04:47 +0000)] 
The practracker beatings will continue until the files get smaller.

6 years agoAdd control port circuit ID to all pathbias bug messages.
Mike Perry [Wed, 8 May 2019 21:28:00 +0000 (21:28 +0000)] 
Add control port circuit ID to all pathbias bug messages.

To ease debugging of miscount issues, attach vanguards with --loglevel DEBUG
and obtain control port logs (or use any other control port CIRC and
CIRC_MINOR event logging mechanism).