]> git.ipfire.org Git - thirdparty/tor.git/log
thirdparty/tor.git
11 years agoStop spurious clang shallow analysis null pointer errors
teor [Mon, 29 Sep 2014 00:08:37 +0000 (10:08 +1000)] 
Stop spurious clang shallow analysis null pointer errors

Avoid 4 null pointer errors under clang shallow analysis (the default when
building under Xcode) by using tor_assert() to prove that the pointers
aren't null. Resolves issue 13284 via minor code refactoring.

11 years agoMerge remote-tracking branch 'public/require_some_c99'
Nick Mathewson [Fri, 26 Sep 2014 15:06:41 +0000 (11:06 -0400)] 
Merge remote-tracking branch 'public/require_some_c99'

11 years agoAvoid a "constant variable guards dead code" warning from coverity
Nick Mathewson [Fri, 26 Sep 2014 13:40:30 +0000 (09:40 -0400)] 
Avoid a "constant variable guards dead code" warning from coverity

Fixes CID 752028

11 years agoRegenerate pwbox.c with the latest trunnel
Nick Mathewson [Fri, 26 Sep 2014 13:33:24 +0000 (09:33 -0400)] 
Regenerate pwbox.c with the latest trunnel

This one should no longer generate dead-code warnings with coverity.
Fingers crossed?  This was CID 1241498

11 years agoComment-out dead code in ed25519/ref10
Nick Mathewson [Fri, 26 Sep 2014 13:07:44 +0000 (09:07 -0400)] 
Comment-out dead code in ed25519/ref10

There are some loops of the form

       for (i=1;i<1;++i) ...

And of course, if the loop index is initialized to 1, it will never
be less than 1, and the loop body will never be executed.  This
upsets coverity.

Patch fixes CID 1221543 and 1221542

11 years agoCheck key_len in secret_to_key_new()
Nick Mathewson [Fri, 26 Sep 2014 13:06:36 +0000 (09:06 -0400)] 
Check key_len in secret_to_key_new()

This bug shouldn't be reachable so long as secret_to_key_len and
secret_to_key_make_specifier stay in sync, but we might screw up
someday.

Found by coverity; this is CID 1241500

11 years agoFix a double-free in failing case of handle_control_authenticate.
Nick Mathewson [Thu, 18 Sep 2014 15:13:57 +0000 (11:13 -0400)] 
Fix a double-free in failing case of handle_control_authenticate.

Bugfix on ed8f020e205267e6270494634346ab68d830e1d8; bug not in any
released version of Tor.  Found by Coverity; this is CID 1239290.

[Yes, I used this commit message before, in 58e813d0fcfcecfc2017.
Turns out, that fix wasn't right, since I didn't look up a
screen. :P ]

11 years agoFix on that last fix.
Nick Mathewson [Thu, 25 Sep 2014 21:59:10 +0000 (17:59 -0400)] 
Fix on that last fix.

11 years agoFix warnings on 32-bit builds.
Nick Mathewson [Thu, 25 Sep 2014 21:50:13 +0000 (17:50 -0400)] 
Fix warnings on 32-bit builds.

When size_t is the most memory you can have, make sure that things
referring to real parts of memory are size_t, not uint64_t or off_t.

But not on any released Tor.

11 years agoMerge branch 'ed25519_ref10_squashed'
Nick Mathewson [Thu, 25 Sep 2014 19:11:34 +0000 (15:11 -0400)] 
Merge branch 'ed25519_ref10_squashed'

Conflicts:
src/common/include.am
src/ext/README

11 years agoComments and tweaks based on review by asn
Nick Mathewson [Thu, 25 Sep 2014 19:03:55 +0000 (15:03 -0400)] 
Comments and tweaks based on review by asn

Add some documentation

Rename "derive" -> "blind"

Check for failure on randombytes().

11 years agoAdd benchmarks for ed25519 functions
Nick Mathewson [Thu, 25 Sep 2014 14:13:25 +0000 (10:13 -0400)] 
Add benchmarks for ed25519 functions

11 years agoAdd comments to ed25519_vectors.inc
Nick Mathewson [Mon, 1 Sep 2014 00:01:53 +0000 (20:01 -0400)] 
Add comments to ed25519_vectors.inc

11 years agoCut the time to run the python ed25519 tests by a factor of ~6
Nick Mathewson [Sun, 31 Aug 2014 23:45:56 +0000 (19:45 -0400)] 
Cut the time to run the python ed25519 tests by a factor of ~6

I know it's pointless to optimize them, but I just can't let them
spend all that time in expmod() when native python pow() does the same
thing.

11 years agoAdd a reference implementation of our ed25519 modifications
Nick Mathewson [Sun, 31 Aug 2014 23:39:43 +0000 (19:39 -0400)] 
Add a reference implementation of our ed25519 modifications

Also, use it to generate test vectors, and add those test vectors
to test_crypto.c

This is based on ed25519.py from the ed25519 webpage; the kludgy hacks
are my own.

11 years agoAdd the pure-python ed25519 implementation, for testing.
Nick Mathewson [Sat, 30 Aug 2014 16:29:35 +0000 (12:29 -0400)] 
Add the pure-python ed25519 implementation, for testing.

11 years agoMore documentation for ed25519 stuff.
Nick Mathewson [Fri, 29 Aug 2014 13:24:27 +0000 (09:24 -0400)] 
More documentation for ed25519 stuff.

11 years agoFix linux compilation of ed25519_ref10
Nick Mathewson [Thu, 28 Aug 2014 00:12:57 +0000 (20:12 -0400)] 
Fix linux compilation of ed25519_ref10

Our integer-definition headers apparently suck in a definition for
select(2), which interferes with the select() in ge_scalarmult_base.c

11 years agoDraft implementation for ed25519 key blinding, as in prop224
Nick Mathewson [Wed, 27 Aug 2014 21:59:15 +0000 (17:59 -0400)] 
Draft implementation for ed25519 key blinding, as in prop224

This implementation allows somebody to add a blinding factor to a
secret key, and a corresponding blinding factor to the public key.

Robert Ransom came up with this idea, I believe.  Nick Hopper proved a
scheme like this secure.  The bugs are my own.

11 years agoAdd curve25519->ed25519 key conversion per proposal 228
Nick Mathewson [Wed, 27 Aug 2014 04:18:26 +0000 (00:18 -0400)] 
Add curve25519->ed25519 key conversion per proposal 228

For proposal 228, we need to cross-certify our identity with our
curve25519 key, so that we can prove at descriptor-generation time
that we own that key.  But how can we sign something with a key that
is only for doing Diffie-Hellman?  By converting it to the
corresponding ed25519 point.

See the ALL-CAPS warning in the documentation.  According to djb
(IIUC), it is safe to use these keys in the ways that ntor and prop228
are using them, but it might not be safe if we start providing crazy
oracle access.

(Unit tests included.  What kind of a monster do you take me for?)

11 years agoSupport for writing ed25519 public/private components to disk.
Nick Mathewson [Fri, 18 Oct 2013 17:25:00 +0000 (10:25 -0700)] 
Support for writing ed25519 public/private components to disk.

This refactors the "== type:tag ==" code from crypto_curve25519.c

11 years agoAdd encode/decode functions for ed25519 public keys
Nick Mathewson [Mon, 30 Sep 2013 17:38:12 +0000 (13:38 -0400)] 
Add encode/decode functions for ed25519 public keys

11 years agoRestore the operation of extra_strong in ed25519_secret_key_generate
Nick Mathewson [Wed, 27 Aug 2014 03:15:14 +0000 (23:15 -0400)] 
Restore the operation of extra_strong in ed25519_secret_key_generate

11 years agoAnother ed25519 tweak: store secret keys in expanded format
Nick Mathewson [Wed, 27 Aug 2014 01:35:25 +0000 (21:35 -0400)] 
Another ed25519 tweak: store secret keys in expanded format

This will be needed/helpful for the key blinding of prop224, I
believe.

11 years agoFix API for ed25519_ref10_open()
Nick Mathewson [Tue, 26 Aug 2014 18:55:08 +0000 (14:55 -0400)] 
Fix API for ed25519_ref10_open()

This is another case where DJB likes sticking the whole signature
prepended to the message, and I don't think that's the hottest idea.

The unit tests still pass.

11 years agoTweak ed25519 ref10 signing interface to use less space.
Nick Mathewson [Tue, 26 Aug 2014 16:47:27 +0000 (12:47 -0400)] 
Tweak ed25519 ref10 signing interface to use less space.

Unit tests still pass.

11 years agoTweak ref10 keygen APIs to be more sane.
Nick Mathewson [Tue, 26 Aug 2014 16:32:00 +0000 (12:32 -0400)] 
Tweak ref10 keygen APIs to be more sane.

11 years agoAdd Ed25519 support, wrappers, and tests.
Nick Mathewson [Sun, 29 Sep 2013 17:30:24 +0000 (13:30 -0400)] 
Add Ed25519 support, wrappers, and tests.

Taken from earlier ed25519 branch based on floodyberry's
ed25519-donna.  Tweaked so that it applies to ref10 instead.

11 years agoUse --require-version to prevent running trunnel pre-1.2
Nick Mathewson [Thu, 25 Sep 2014 18:49:00 +0000 (14:49 -0400)] 
Use --require-version to prevent running trunnel pre-1.2

(Also, regenerate trunnel stuff with trunnel 1.2.  This just adds a
few comments to our output.)

11 years agoHave the run_trunnel.sh script tell trunnel to update src/ext/trunnel too
Nick Mathewson [Thu, 25 Sep 2014 17:16:35 +0000 (13:16 -0400)] 
Have the run_trunnel.sh script tell trunnel to update src/ext/trunnel too

11 years agoAdd a script to run trunnel on the trunnel files.
Nick Mathewson [Thu, 25 Sep 2014 16:31:31 +0000 (12:31 -0400)] 
Add a script to run trunnel on the trunnel files.

Also, re-run the latest trunnel.

Closes ticket 13242

11 years agoMention trunnel in LICENSE and src/ext/README
Nick Mathewson [Thu, 25 Sep 2014 16:03:46 +0000 (12:03 -0400)] 
Mention trunnel in LICENSE and src/ext/README

11 years agoMerge branch 'libscrypt_trunnel_squashed'
Nick Mathewson [Thu, 25 Sep 2014 16:03:41 +0000 (12:03 -0400)] 
Merge branch 'libscrypt_trunnel_squashed'

Conflicts:
src/test/test_crypto.c

11 years agoAdd tests for failing cases of crypto_pwbox
Nick Mathewson [Wed, 24 Sep 2014 16:32:18 +0000 (12:32 -0400)] 
Add tests for failing cases of crypto_pwbox

11 years agoUse trunnel for crypto_pwbox encoding/decoding.
Nick Mathewson [Wed, 24 Sep 2014 14:51:39 +0000 (10:51 -0400)] 
Use trunnel for crypto_pwbox encoding/decoding.

This reduces the likelihood that I have made any exploitable errors
in the encoding/decoding.

This commit also imports the trunnel runtime source into Tor.

11 years agoAdjust pwbox format: use a random IV each time
Nick Mathewson [Tue, 23 Sep 2014 18:47:23 +0000 (14:47 -0400)] 
Adjust pwbox format: use a random IV each time

Suggested by yawning

11 years agoTest a full array of s2k flags with pwbox test.
Nick Mathewson [Tue, 23 Sep 2014 18:34:59 +0000 (14:34 -0400)] 
Test a full array of s2k flags with pwbox test.

Suggested by yawning.

11 years agoUse preferred key-expansion means for pbkdf2, scrypt.
Nick Mathewson [Sat, 30 Aug 2014 16:03:20 +0000 (12:03 -0400)] 
Use preferred key-expansion means for pbkdf2, scrypt.

Use HKDF for RFC2440 s2k only.

11 years agoTest vectors for PBKDF2 from RFC6070
Nick Mathewson [Sat, 30 Aug 2014 15:52:41 +0000 (11:52 -0400)] 
Test vectors for PBKDF2 from RFC6070

11 years agoTest vectors for scrypt from draft-josefsson-scrypt-kdf-00
Nick Mathewson [Sat, 30 Aug 2014 15:28:42 +0000 (11:28 -0400)] 
Test vectors for scrypt from draft-josefsson-scrypt-kdf-00

11 years agoTweak and expose secret_to_key_compute_key for testing
Nick Mathewson [Sat, 30 Aug 2014 14:42:02 +0000 (10:42 -0400)] 
Tweak and expose secret_to_key_compute_key for testing

Doing this lets me pass in a salt of an unusual length.

11 years agoRudimentary-but-sufficient passphrase-encrypted box code.
Nick Mathewson [Thu, 28 Aug 2014 21:59:06 +0000 (17:59 -0400)] 
Rudimentary-but-sufficient passphrase-encrypted box code.

See crypto_pwbox.c for a description of the file format.

There are tests for successful operation, but it still needs
error-case tests.

11 years agoMore generic passphrase hashing code, including scrypt support
Nick Mathewson [Thu, 28 Aug 2014 21:38:22 +0000 (17:38 -0400)] 
More generic passphrase hashing code, including scrypt support

Uses libscrypt when found; otherwise, we don't have scrypt and we
only support openpgp rfc2440 s2k hashing, or pbkdf2.

Includes documentation and unit tests; coverage around 95%. Remaining
uncovered code is sanity-checks that shouldn't be reachable fwict.

11 years agoTell autoconf to make the compiler act as c99
Nick Mathewson [Thu, 25 Sep 2014 15:36:28 +0000 (11:36 -0400)] 
Tell autoconf to make the compiler act as c99

Apparently some compilers want extra switches.

11 years agoTweak address.c to use a little c99 syntax
Nick Mathewson [Thu, 25 Sep 2014 15:22:02 +0000 (11:22 -0400)] 
Tweak address.c to use a little c99 syntax

Since address.c is the first file to get compiled, let's have it use
a little judicious c99 in order to catch broken compilers that
somehow make it past our autoconf tests.

11 years agoRequire two c99 features (midblock decls, designated initializers)
Nick Mathewson [Thu, 25 Sep 2014 15:20:04 +0000 (11:20 -0400)] 
Require two c99 features (midblock decls, designated initializers)

c99 lets us do neat stuff like:

    {
      int j, k;
      foo(&j, &k);
      int z = j + k;
    }

and also
    struct point { int x; int y; };
    struct point pt = { .x=5, .y=5 };

This commit makes the configure scripts check to make sure your
compiler implements them.  It also disables our longstanding warning
about midblock declarations.

Closes ticket 13233.

11 years agotwo more typos
Roger Dingledine [Tue, 23 Sep 2014 22:30:02 +0000 (18:30 -0400)] 
two more typos

11 years ago+ is not how we say concatenate
Roger Dingledine [Tue, 23 Sep 2014 00:09:03 +0000 (20:09 -0400)] 
+ is not how we say concatenate

11 years agoMerge remote-tracking branch 'public/bug12693_025'
Nick Mathewson [Mon, 22 Sep 2014 18:45:38 +0000 (14:45 -0400)] 
Merge remote-tracking branch 'public/bug12693_025'

11 years agoMerge branch 'master' of git-rw.torproject.org:/tor
Nick Mathewson [Mon, 22 Sep 2014 18:35:14 +0000 (14:35 -0400)] 
Merge branch 'master' of git-rw.torproject.org:/tor

11 years agoMerge branch 'bug8197_squashed'
Nick Mathewson [Mon, 22 Sep 2014 18:34:52 +0000 (14:34 -0400)] 
Merge branch 'bug8197_squashed'

Conflicts:
src/test/test_policy.c

11 years agoand forward-port those changelogs too
Roger Dingledine [Mon, 22 Sep 2014 18:21:26 +0000 (14:21 -0400)] 
and forward-port those changelogs too

11 years agoWriting comments for newly added functions.
rl1987 [Sun, 21 Sep 2014 11:35:48 +0000 (14:35 +0300)] 
Writing comments for newly added functions.

11 years agoAdding changes file for 8197.
rl1987 [Sun, 14 Sep 2014 14:35:13 +0000 (17:35 +0300)] 
Adding changes file for 8197.

11 years agoWhitespace fixes
rl1987 [Sun, 14 Sep 2014 14:07:05 +0000 (17:07 +0300)] 
Whitespace fixes

11 years agoUsing the new API in unit-test.
rl1987 [Sat, 13 Sep 2014 16:32:35 +0000 (19:32 +0300)] 
Using the new API in unit-test.

11 years agoNew API for policies_parse_exit_policy().
rl1987 [Sat, 13 Sep 2014 13:25:48 +0000 (16:25 +0300)] 
New API for policies_parse_exit_policy().

11 years agochanges file for 12884
Nick Mathewson [Mon, 22 Sep 2014 14:55:53 +0000 (10:55 -0400)] 
changes file for 12884

11 years agoRemove config options that have been obsolete since 0.2.3
Adrien BAK [Mon, 22 Sep 2014 14:55:01 +0000 (10:55 -0400)] 
Remove config options that have been obsolete since 0.2.3

11 years agoMerge remote-tracking branch 'arma/feature13211'
Nick Mathewson [Mon, 22 Sep 2014 14:49:10 +0000 (10:49 -0400)] 
Merge remote-tracking branch 'arma/feature13211'

11 years agoMerge remote-tracking branch 'arma/feature13153'
Nick Mathewson [Mon, 22 Sep 2014 14:42:54 +0000 (10:42 -0400)] 
Merge remote-tracking branch 'arma/feature13153'

11 years agochanges file for 7733
Nick Mathewson [Mon, 22 Sep 2014 14:39:51 +0000 (10:39 -0400)] 
changes file for 7733

11 years agoMerge remote-tracking branch 'public/bug7733a'
Nick Mathewson [Mon, 22 Sep 2014 14:38:05 +0000 (10:38 -0400)] 
Merge remote-tracking branch 'public/bug7733a'

11 years agoMerge remote-tracking branch 'intrigeri/bug13196-systemd-writable-run-directory'
Nick Mathewson [Mon, 22 Sep 2014 14:31:24 +0000 (10:31 -0400)] 
Merge remote-tracking branch 'intrigeri/bug13196-systemd-writable-run-directory'

11 years agoclients use optimistic data when reaching hidden services
Roger Dingledine [Mon, 22 Sep 2014 00:02:12 +0000 (20:02 -0400)] 
clients use optimistic data when reaching hidden services

Allow clients to use optimistic data when connecting to a hidden service,
which should cut out the initial round-trip for client-side programs
including Tor Browser.

(Now that Tor 0.2.2.x is obsolete, all hidden services should support
server-side optimistic data.)

See proposal 181 for details. Implements ticket 13211.

11 years agoUse optimistic data even if we don't know exitnode->rs
Roger Dingledine [Sun, 21 Sep 2014 23:12:20 +0000 (19:12 -0400)] 
Use optimistic data even if we don't know exitnode->rs

I think we should know the routerstatus for our exit relay, since
we built a circuit to it. So I think this is just a code simplication.

11 years agoget rid of routerstatus->version_supports_optimistic_data
Roger Dingledine [Sun, 21 Sep 2014 23:04:18 +0000 (19:04 -0400)] 
get rid of routerstatus->version_supports_optimistic_data

Clients are now willing to send optimistic circuit data (before they
receive a 'connected' cell) to relays of any version. We used to
only do it for relays running 0.2.3.1-alpha or later, but now all
relays are new enough.

Resolves ticket 13153.

11 years agoget rid of trivial redundant comment
Roger Dingledine [Sun, 21 Sep 2014 22:56:48 +0000 (18:56 -0400)] 
get rid of trivial redundant comment

11 years agoStop silently skipping invalid args to setevents
Roger Dingledine [Sun, 21 Sep 2014 05:23:39 +0000 (01:23 -0400)] 
Stop silently skipping invalid args to setevents

Return an error when the second or later arguments of the
"setevents" controller command are invalid events. Previously we
would return success while silently skipping invalid events.

Fixes bug 13205; bugfix on 0.2.3.2-alpha. Reported by "fpxnns".

11 years agoMerge branch 'maint-0.2.5'
Roger Dingledine [Sat, 20 Sep 2014 20:51:17 +0000 (16:51 -0400)] 
Merge branch 'maint-0.2.5'

11 years agoMerge branch 'maint-0.2.4' into maint-0.2.5
Roger Dingledine [Sat, 20 Sep 2014 20:50:32 +0000 (16:50 -0400)] 
Merge branch 'maint-0.2.4' into maint-0.2.5

Conflicts:
src/or/config.c

11 years agoMerge branch 'maint-0.2.3' into maint-0.2.4
Roger Dingledine [Sat, 20 Sep 2014 20:49:24 +0000 (16:49 -0400)] 
Merge branch 'maint-0.2.3' into maint-0.2.4

11 years agogabelmoo's IPv4 address changed
Sebastian Hahn [Fri, 19 Sep 2014 11:40:37 +0000 (13:40 +0200)] 
gabelmoo's IPv4 address changed

11 years agoAdd changes file for #13196.
intrigeri [Fri, 19 Sep 2014 16:07:31 +0000 (16:07 +0000)] 
Add changes file for #13196.

Note that this will likely need to be folded with the changes file for #12751,
as this change is a mere fixup on top of the changes introduced for #12751.

11 years agosystemd unit file: set up /var/run/tor as writable for the Tor service.
intrigeri [Fri, 19 Sep 2014 16:04:59 +0000 (16:04 +0000)] 
systemd unit file: set up /var/run/tor as writable for the Tor service.

For some strange reason, this was not needed with systemd v208.
But it's needed with systemd v215 on current Debian sid, and entirely
makes sense.

11 years agoMerge branch 'bug4244b_squashed'
Nick Mathewson [Thu, 18 Sep 2014 19:31:08 +0000 (15:31 -0400)] 
Merge branch 'bug4244b_squashed'

11 years agoClients no longer write "DirReqStatistics 0" in their saveconf output
Roger Dingledine [Thu, 11 Sep 2014 03:01:18 +0000 (23:01 -0400)] 
Clients no longer write "DirReqStatistics 0" in their saveconf output

Stop modifying the value of our DirReqStatistics torrc option just
because we're not a bridge or relay. This bug was causing Tor
Browser users to write "DirReqStatistics 0" in their torrc files
as if they had chosen to change the config.

Fixes bug 4244; bugfix on 0.2.3.1-alpha.

11 years agoFix a double-free in failing case of handle_control_authenticate.
Nick Mathewson [Thu, 18 Sep 2014 15:13:57 +0000 (11:13 -0400)] 
Fix a double-free in failing case of handle_control_authenticate.

Bugfix on ed8f020e205267e6270494634346ab68d830e1d8; bug not in any
released version of Tor.  Found by Coverity; this is CID 1239290.

11 years agoUse the DL_SCHED_CONSENSUS schedule for consensuses.
Nick Mathewson [Thu, 18 Sep 2014 14:51:44 +0000 (10:51 -0400)] 
Use the DL_SCHED_CONSENSUS schedule for consensuses.

Fixes bug 11679; bugfix on 0.2.2.6-alpha

11 years agoActivate INSTRUMENT_DOWNLOADS under clang analyzer as well as coverity
Nick Mathewson [Thu, 18 Sep 2014 14:23:14 +0000 (10:23 -0400)] 
Activate INSTRUMENT_DOWNLOADS under clang analyzer as well as coverity

Patch from teor; ticket 13177.

11 years agoFix a windows unused-arg warning
Nick Mathewson [Wed, 17 Sep 2014 15:00:27 +0000 (11:00 -0400)] 
Fix a windows unused-arg warning

11 years agoMerge remote-tracking branch 'public/ticket_13119_v3'
Nick Mathewson [Wed, 17 Sep 2014 14:27:40 +0000 (10:27 -0400)] 
Merge remote-tracking branch 'public/ticket_13119_v3'

11 years agotorrc.sample: Fix units
Peter Palfrader [Wed, 10 Sep 2014 15:18:34 +0000 (17:18 +0200)] 
torrc.sample: Fix units

11 years agoIgnore coverage_html/
Arlo Breault [Wed, 10 Sep 2014 15:14:05 +0000 (08:14 -0700)] 
Ignore coverage_html/

11 years agoMerge remote-tracking branch 'origin/maint-0.2.5'
Nick Mathewson [Tue, 16 Sep 2014 15:11:48 +0000 (11:11 -0400)] 
Merge remote-tracking branch 'origin/maint-0.2.5'

11 years agoAdd coccinelle script to remove pointless callocs
Nick Mathewson [Tue, 16 Sep 2014 15:11:17 +0000 (11:11 -0400)] 
Add coccinelle script to remove pointless callocs

11 years agoMerge remote-tracking branch 'origin/maint-0.2.4' into maint-0.2.5
Nick Mathewson [Tue, 16 Sep 2014 15:10:02 +0000 (11:10 -0400)] 
Merge remote-tracking branch 'origin/maint-0.2.4' into maint-0.2.5

11 years agoclients now send correct address for rendezvous point
Roger Dingledine [Sun, 14 Sep 2014 01:49:37 +0000 (21:49 -0400)] 
clients now send correct address for rendezvous point

Clients now send the correct address for their chosen rendezvous point
when trying to access a hidden service. They used to send the wrong
address, which would still work some of the time because they also
sent the identity digest of the rendezvous point, and if the hidden
service happened to try connecting to the rendezvous point from a relay
that already had a connection open to it, the relay would reuse that
connection. Now connections to hidden services should be more robust
and faster. Also, this bug meant that clients were leaking to the hidden
service whether they were on a little-endian (common) or big-endian (rare)
system, which for some users might have reduced their anonymity.

Fixes bug 13151; bugfix on 0.2.1.5-alpha.

11 years agoAdd script to detect and remove unCish malloc-then-cast pattern
Nick Mathewson [Tue, 16 Sep 2014 14:57:00 +0000 (10:57 -0400)] 
Add script to detect and remove unCish malloc-then-cast pattern

Also, apply it.

11 years agoclean up eol whitespace from coccinelle-generated patches
Nick Mathewson [Tue, 16 Sep 2014 13:40:38 +0000 (09:40 -0400)] 
clean up eol whitespace from coccinelle-generated patches

11 years agoRemove the legacy_test_helper and legacy_setup wrappers
Nick Mathewson [Tue, 16 Sep 2014 13:30:22 +0000 (09:30 -0400)] 
Remove the legacy_test_helper and legacy_setup wrappers

These wrappers went into place when the default type for our unit
test functions changed from "void fn(void)" to "void fn(void *arg)".

To generate this patch, I did the same hokey-pokey as before with
replacing all operators used as macro arguments, then I ran a
coccinelle script, then I ran perl script to fix up everything that
used legacy_test_helper, then I manually removed the
legacy_test_helper functions, then I ran a final perl script to put
the operators back how they were.

==============================
 #!/usr/bin/perl -w -i -p

s/==,/_X_EQ_,/g;
s/!=,/_X_NE_,/g;
s/<,/_X_LT_,/g;
s/>,/_X_GT_,/g;
s/>=,/_X_GEQ_,/g;
s/<=,/_X_LEQ_,/g;

--------------------

@@
identifier func =~ "test_.*$";
statement S, S2;
@@
 static void func (
-void
+void *arg
 )
 {
 ... when != S2
+(void) arg;
 S
 ...
 }

--------------------
 #!/usr/bin/perl -w -i -p

s/, *legacy_test_helper, *([^,]+), *\&legacy_setup, *([^\}]+) *}/, $2, $1, NULL, NULL }/g;

--------------------
 #!/usr/bin/perl -w -i -p

s/_X_NEQ_/!=/g;
s/_X_NE_/!=/g;
s/_X_EQ_/==/g;
s/_X_GT_/>/g;
s/_X_LT_/</g;
s/_X_GEQ_/>=/g;
s/_X_LEQ_/<=/g;

--------------------

11 years agoAdd a changes file for 13119
Nick Mathewson [Tue, 16 Sep 2014 01:39:12 +0000 (21:39 -0400)] 
Add a changes file for 13119

11 years agoReplace all uses of test_{str,}eq
Nick Mathewson [Tue, 16 Sep 2014 01:36:23 +0000 (21:36 -0400)] 
Replace all uses of test_{str,}eq

11 years agoReplace the remaining test_assert instances
Nick Mathewson [Tue, 16 Sep 2014 01:29:48 +0000 (21:29 -0400)] 
Replace the remaining test_assert instances

11 years agoremove two unused test_* macros
Nick Mathewson [Tue, 16 Sep 2014 01:28:26 +0000 (21:28 -0400)] 
remove two unused test_* macros

11 years agoReplace remaining uses of deprecated test_mem* functions
Nick Mathewson [Tue, 16 Sep 2014 01:27:23 +0000 (21:27 -0400)] 
Replace remaining uses of deprecated test_mem* functions

11 years agoReplace the remaining test_n?eq_ptr calls
Nick Mathewson [Tue, 16 Sep 2014 01:25:27 +0000 (21:25 -0400)] 
Replace the remaining test_n?eq_ptr calls

11 years agoMake not even macros use test_fail_msg.
Nick Mathewson [Tue, 16 Sep 2014 01:22:36 +0000 (21:22 -0400)] 
Make not even macros use test_fail_msg.

11 years agoUse coccinelle scripts to clean up our unit tests
Nick Mathewson [Tue, 16 Sep 2014 01:18:21 +0000 (21:18 -0400)] 
Use coccinelle scripts to clean up our unit tests

This should get rid of most of the users of the old test_*
functions.  Some are in macros and will need manual cleanup, though.

This patch is for 13119, and was automatically generated with these
scripts.  The perl scripts are there because coccinelle hates
operators as macro arguments.

------------------------------

s/==,/_X_EQ_,/g;
s/!=,/_X_NE_,/g;
s/<,/_X_LT_,/g;
s/>,/_X_GT_,/g;
s/>=,/_X_GEQ_,/g;
s/<=,/_X_LEQ_,/g;

------------------------------
@@
expression a;
identifier func;
@@
 func (...) {
<...
-test_fail_msg
+TT_DIE
 (
+(
 a
+)
 )
 ...>
 }

@@
identifier func;
@@
 func (...) {
<...
-test_fail()
+TT_DIE(("Assertion failed."))
 ...>
 }

@@
expression a;
identifier func;
@@
 func (...) {
<...
-test_assert
+tt_assert
(a)
 ...>
 }

@@
expression a, b;
identifier func;
@@
 func (...) {
<...
-test_eq
+tt_int_op
 (a,
+_X_EQ_,
  b)
 ...>
 }

@@
expression a, b;
identifier func;
@@
 func (...) {
<...
-test_neq
+tt_int_op
 (a,
+_X_NEQ_,
  b)
 ...>
 }

@@
expression a, b;
identifier func;
@@
 func (...) {
<...
-test_streq
+tt_str_op
 (a,
+_X_EQ_,
  b)
 ...>
 }

@@
expression a, b;
identifier func;
@@
 func (...) {
<...
-test_strneq
+tt_str_op
 (a,
+_X_NEQ_,
  b)
 ...>
 }

@@
expression a, b;
identifier func;
@@
 func (...) {
<...
-test_eq_ptr
+tt_ptr_op
 (a,
+_X_EQ_,
  b)
 ...>
 }

@@
expression a, b;
identifier func;
@@
 func() {
<...
-test_neq_ptr
+tt_ptr_op
 (a,
+_X_NEQ_,
  b)
 ...>
 }

@@
expression a, b, len;
identifier func;
@@
 func (...) {
<...
-test_memeq
+tt_mem_op
 (a,
+_X_EQ_,
  b, len)
 ...>
 }

@@
expression a, b, len;
identifier func;
@@
 func (...) {
<...
-test_memneq
+tt_mem_op
 (a,
+_X_NEQ_,
  b, len)
 ...>
 }

------------------------------
@@
char a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a == b
+a, _X_EQ_, b
 )
 ...>
}

@@
int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a == b
+a, _X_EQ_, b
 )
 ...>
}

@@
long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a == b
+a, _X_EQ_, b
 )
 ...>
}

@@
unsigned int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a == b
+a, _X_EQ_, b
 )
 ...>
}

@@
unsigned long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a == b
+a, _X_EQ_, b
 )
 ...>
}

@@
char a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a != b
+a, _X_NEQ_, b
 )
 ...>
}

@@
int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a != b
+a, _X_NEQ_, b
 )
 ...>
}

@@
long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a != b
+a, _X_NEQ_, b
 )
 ...>
}

@@
unsigned int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a != b
+a, _X_NEQ_, b
 )
 ...>
}

@@
unsigned long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a != b
+a, _X_NEQ_, b
 )
 ...>
}

@@
char a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a >= b
+a, _X_GEQ_, b
 )
 ...>
}

@@
int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a >= b
+a, _X_GEQ_, b
 )
 ...>
}

@@
long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a >= b
+a, _X_GEQ_, b
 )
 ...>
}

@@
unsigned int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a >= b
+a, _X_GEQ_, b
 )
 ...>
}

@@
unsigned long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a >= b
+a, _X_GEQ_, b
 )
 ...>
}

@@
char a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a <= b
+a, _X_LEQ_, b
 )
 ...>
}

@@
int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a <= b
+a, _X_LEQ_, b
 )
 ...>
}

@@
long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a <= b
+a, _X_LEQ_, b
 )
 ...>
}

@@
unsigned int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a <= b
+a, _X_LEQ_, b
 )
 ...>
}

@@
unsigned long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a <= b
+a, _X_LEQ_, b
 )
 ...>
}

@@
char a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a > b
+a, _X_GT_, b
 )
 ...>
}

@@
int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a > b
+a, _X_GT_, b
 )
 ...>
}

@@
long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a > b
+a, _X_GT_, b
 )
 ...>
}

@@
unsigned int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a > b
+a, _X_GT_, b
 )
 ...>
}

@@
unsigned long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a > b
+a, _X_GT_, b
 )
 ...>
}

@@
char a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a < b
+a, _X_LT_, b
 )
 ...>
}

@@
int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a < b
+a, _X_LT_, b
 )
 ...>
}

@@
long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_int_op
 (
-a < b
+a, _X_LT_, b
 )
 ...>
}

@@
unsigned int a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a < b
+a, _X_LT_, b
 )
 ...>
}

@@
unsigned long a, b;
identifier func;
@@
 func (...) {
<...
-tt_assert
+tt_uint_op
 (
-a < b
+a, _X_LT_, b
 )
 ...>
}

------------------------------

s/_X_NEQ_/!=/g;
s/_X_NE_/!=/g;
s/_X_EQ_/==/g;
s/_X_GT_/>/g;
s/_X_LT_/</g;
s/_X_GEQ_/>=/g;
s/_X_LEQ_/<=/g;

s/test_mem_op\(/tt_mem_op\(/g;

11 years agoDon't pass invalid memory regions to digestmap_set/get in test_routerlist
Nick Mathewson [Mon, 15 Sep 2014 18:04:19 +0000 (14:04 -0400)] 
Don't pass invalid memory regions to digestmap_set/get in test_routerlist

Fixes bug in c887e20e6a5a2c17c65; bug in no released Tor version.