Nick Mathewson
de8e0ef0bd
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-05-15 22:15:06 -04:00
Nick Mathewson
83fe07d3f2
Increase the length of the buffer in smartlist_string_num_isin().
...
This was harmless, since we only used this for checking for lists of
port values, but it's the principle of the thing.
Fixes 3175; bugfix on 0.1.0.1-rc
2011-05-15 22:13:53 -04:00
Nick Mathewson
4ac8ff9c9f
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-05-15 20:22:44 -04:00
Nick Mathewson
f72e792be5
Make check_private_dir check for group ownership as appropriate
2011-05-15 20:20:30 -04:00
Nick Mathewson
287f6cb128
Fix up some comment issues spotted by rransom
2011-05-15 20:20:30 -04:00
Nick Mathewson
5d147d8527
Add a new flag to check_private_dir to make it _not_ change permissions
...
We'll need this for checking permissions on the directories that hold
control sockets: if somebody says "ControlSocket ~/foo", it would be
pretty rude to do a chmod 700 on their homedir.
2011-05-15 20:20:29 -04:00
Nick Mathewson
3b6cbf2534
Add a function to pull off the final component of a path
2011-05-15 20:20:29 -04:00
Nick Mathewson
b147c01295
Make check_private_dir accept g+rx dirs if told to do so.
2011-05-15 20:20:29 -04:00
Nick Mathewson
68acfefbdb
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-05-15 20:12:20 -04:00
Nick Mathewson
4c3853aca8
Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2
...
Conflicts:
src/or/networkstatus.c
2011-05-15 20:09:10 -04:00
Nick Mathewson
00ff80e0ae
Fixup whitespace issues from 3122 commit
2011-05-15 20:06:36 -04:00
Nick Mathewson
ced06a8009
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-05-15 19:56:40 -04:00
Nick Mathewson
d29c2eb921
Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2
2011-05-15 19:56:27 -04:00
Nick Mathewson
10d670674a
Another doc tweak on tor_memcmp: <b>b</b>, not <b>.
2011-05-15 19:56:05 -04:00
Roger Dingledine
b48f83ab8c
minor tweaks to 4b19730c82
2011-05-15 19:20:42 -04:00
Nick Mathewson
37e3fb8af2
Merge remote-tracking branch 'origin/maint-0.2.2'
...
Conflicts:
src/or/connection_edge.c
2011-05-15 11:44:51 -04:00
Nick Mathewson
2253697a04
New smartlist function to see if two lists of strings are equal.
...
We'll use this to detect changes in CSV options.
2011-05-13 16:18:53 -04:00
Nick Mathewson
600744b4be
Merge remote-tracking branch 'origin/maint-0.2.2'
...
Conflicts:
src/or/config.c
src/or/dirserv.c
src/or/or.h
2011-05-13 10:48:07 -04:00
Nick Mathewson
28cc7b0180
Add a new "tor_sockaddr_to_str()" function
...
It does what it says on the tin. It turns out I'll want this in a couple
of places.
2011-05-13 10:41:18 -04:00
Robert Ransom
c714a098ea
Improve a documentation comment
2011-05-12 02:57:09 -07:00
Robert Ransom
cb9df5e53c
Fix comment typo
2011-05-12 00:27:19 -07:00
Nick Mathewson
9fba014e3f
Merge remote-tracking branch 'public/bug3122_memcmp_022' into bug3122_memcmp_023
...
Conflicts in various places, mainly node-related. Resolved them in
favor of HEAD, with copying of tor_mem* operations from bug3122_memcmp_022.
src/common/Makefile.am
src/or/circuitlist.c
src/or/connection_edge.c
src/or/directory.c
src/or/microdesc.c
src/or/networkstatus.c
src/or/router.c
src/or/routerlist.c
src/test/test_util.c
2011-05-11 16:39:45 -04:00
Nick Mathewson
0cbcbc3412
Re-apply the automated conversion to 0.2.2 to make handle any memcmps that snuck in
2011-05-11 16:27:27 -04:00
Nick Mathewson
44ad734573
Merge remote-tracking branch 'public/3122_memcmp_squashed' into bug3122_memcmp_022
...
Conflicts throughout. All resolved in favor of taking HEAD and
adding tor_mem* or fast_mem* ops as appropriate.
src/common/Makefile.am
src/or/circuitbuild.c
src/or/directory.c
src/or/dirserv.c
src/or/dirvote.c
src/or/networkstatus.c
src/or/rendclient.c
src/or/rendservice.c
src/or/router.c
src/or/routerlist.c
src/or/routerparse.c
src/or/test.c
2011-05-11 16:24:29 -04:00
Nick Mathewson
59f9097d5c
Hand-conversion and audit phase of memcmp transition
...
Here I looked at the results of the automated conversion and cleaned
them up as follows:
If there was a tor_memcmp or tor_memeq that was in fact "safe"[*] I
changed it to a fast_memcmp or fast_memeq.
Otherwise if there was a tor_memcmp that could turn into a
tor_memneq or tor_memeq, I converted it.
This wants close attention.
[*] I'm erring on the side of caution here, and leaving some things
as tor_memcmp that could in my opinion use the data-dependent
fast_memcmp variant.
2011-05-11 16:12:51 -04:00
Nick Mathewson
db7b2a33ee
Automated conversion of memcmp to tor_memcmp/tor_mem[n]eq
...
This commit is _exactly_ the result of
perl -i -pe 's/\bmemcmp\(/tor_memcmp\(/g' src/*/*.[ch]
perl -i -pe 's/\!\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch]
perl -i -pe 's/0\s*==\s*tor_memcmp\(/tor_memeq\(/g' src/*/*.[ch]
perl -i -pe 's/0\s*!=\s*tor_memcmp\(/tor_memneq\(/g' src/*/*.[ch]
git checkout src/common/di_ops.[ch]
git checkout src/or/test.c
git checkout src/common/test.h
2011-05-11 16:12:51 -04:00
Nick Mathewson
1d703ed22b
Add a "di_ops.h" include to util.h
2011-05-11 16:12:51 -04:00
Nick Mathewson
4b19730c82
Add a data-independent variant of memcmp and a d-i memeq function.
...
The tor_memcmp code is by Robert Ransom, and the tor_memeq code is
by me. Both incorporate some ideas from DJB's stuff.
2011-05-11 16:12:33 -04:00
Robert Ransom
b7452dcbcb
Fix comment typo
2011-05-10 05:15:02 -07:00
Nick Mathewson
1065a5ef29
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-05-05 21:54:04 -04:00
Nick Mathewson
330116f034
Fix up some check-spaces issues
2011-05-05 21:53:46 -04:00
Nick Mathewson
8b33928676
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-04-28 17:15:31 -04:00
John Brooks
2dc9546eef
Correct the logic from f14754fbd for tor_gmtime_r
2011-04-28 17:13:45 -04:00
Nick Mathewson
51e551d383
Detect and handle NULL returns from (gm/local)time_r
...
These functions can return NULL for otherwise-valid values of
time_t. Notably, the glibc gmtime manpage says it can return NULL
if the year if greater than INT_MAX, and the windows MSDN gmtime
page says it can return NULL for negative time_t values.
Also, our formatting code is not guaranteed to correctly handle
years after 9999 CE.
This patch tries to correct this by detecting NULL values from
gmtime/localtime_r, and trying to clip them to a reasonable end of
the scale. If they are in the middle of the scale, we call it a
downright error.
Arguably, it's a bug to get out-of-bounds dates like this to begin
with. But we've had bugs of this kind in the past, and warning when
we see a bug is much kinder than doing a NULL-pointer dereference.
Boboper found this one too.
2011-04-28 17:12:54 -04:00
Nick Mathewson
26456d3354
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-04-27 22:14:54 -04:00
Nick Mathewson
0130e7c9d2
Merge remote-tracking branch 'origin/maint-0.2.1' into maint-0.2.2
...
Conflicts:
src/common/torint.h
2011-04-27 22:14:28 -04:00
Nick Mathewson
43ffd023e9
Make SIZE_T_CEILING unsigned; add a signed SSIZE_T_CEILING
...
None of the comparisons were _broken_ previously, but avoiding
signed/unsigned comparisons makes everybody happier.
Fixes bug2475.
2011-04-26 13:03:58 -04:00
Nick Mathewson
4a7f979b54
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-04-19 12:41:01 -04:00
Nick Mathewson
5cc322e547
Standardize our printf code on %d, not %i.
2011-04-19 12:40:29 -04:00
Nick Mathewson
99c2bfe76b
Merge remote-tracking branch 'origin/maint-0.2.2'
...
Conflicts:
src/or/rephist.c
2011-04-08 13:37:57 -04:00
Nick Mathewson
1be1221385
Free pending_cb_messages on exit
2011-04-07 15:25:33 -04:00
Nick Mathewson
67d88a7d60
Merge remote-tracking branch 'origin/maint-0.2.2'
...
Conflicts:
src/common/address.c
src/common/compat_libevent.c
src/common/memarea.c
src/common/util.h
src/or/buffers.c
src/or/circuitbuild.c
src/or/circuituse.c
src/or/connection.c
src/or/directory.c
src/or/networkstatus.c
src/or/or.h
src/or/routerlist.c
2011-04-07 12:17:20 -04:00
Nick Mathewson
ba0cd8094f
Merge remote-tracking branch 'public/xxx_fixups' into maint-0.2.2
...
Conflicts:
src/or/or.h
2011-04-07 12:03:04 -04:00
Nick Mathewson
ee871e7a0e
Merge remote-tracking branch 'origin/maint-0.2.2'
...
Conflicts:
src/common/compat.h
src/or/circuitlist.c
src/or/circuituse.c
src/or/or.h
src/or/rephist.c
2011-03-30 14:55:50 -04:00
Nick Mathewson
5eaba5ac21
Implement replacements for timer(add,cmp,sub) on platforms lacking them.
2011-03-30 14:41:41 -04:00
Sebastian Hahn
9facf8918f
Improve a few comments
2011-03-28 19:28:04 +02:00
Nick Mathewson
05887f10ff
Triage the XXX022 and XXX021 comments remaining in the code
...
Remove some, postpone others, leave some alone. Now the only
remaining XXX022s are ones that seem important to fix or investigate.
2011-03-25 18:32:27 -04:00
Nick Mathewson
c4bd067359
Comment out ancient asserts for bug 930; resolve an xxx021
2011-03-25 16:28:38 -04:00
Nick Mathewson
41380fa3b3
Fixup tor_addr_to_sockaddr return convention
2011-03-25 16:28:38 -04:00
Nick Mathewson
88bb40d8f8
Clean up a comment-conversation about bad libevent version/method combos
2011-03-25 16:28:38 -04:00
Nick Mathewson
444e46d96d
Remove the "fuzzy time" code
...
It was the start of a neat idea, but it only got used in 3 places,
none of which really needed it.
2011-03-25 16:28:37 -04:00
Nick Mathewson
1db6eb6cb7
Merge remote-tracking branch 'origin/maint-0.2.2'
2011-03-16 18:10:24 -04:00
Nick Mathewson
721954b3a2
Resolve the one DOCDOC in the 0.2.2 code atm
2011-03-16 18:07:55 -04:00
Nick Mathewson
b1b6552251
Merge remote-tracking branch 'origin/maint-0.2.2'
...
Conflicts:
src/common/crypto.c
2011-03-16 17:16:54 -04:00
Nick Mathewson
3310dd2358
Clean up whitespace
2011-03-16 17:11:30 -04:00
Nick Mathewson
57b954293e
Merge remote-tracking branch 'origin/maint-0.2.2'
...
Trivial Conflicts in
src/common/crypto.c
src/or/main.h
src/or/or.h
2011-03-16 17:09:32 -04:00
Nick Mathewson
6617822b84
Doxygen documentation for about 100 things that didn't have any
...
About 860 doxygen-less things remain in 0.2.2
2011-03-16 17:05:37 -04:00
Nick Mathewson
7f6af7a602
Fix up all doxygen warnings other than "foo is not documented"
2011-03-16 14:47:27 -04:00
Nick Mathewson
26009a3ed0
Merge remote branch 'origin/maint-0.2.2'
2011-03-07 17:12:08 -05:00
Sebastian Hahn
f83debb51d
Fix setting target port in get_interface_address6
...
We want to use the discard port correctly, so a htons() was missing.
Also we need to set it correctly depending on address family.
Review provided by danieldg
2011-03-05 16:58:20 +01:00
Sebastian Hahn
865ea5d263
Fix connect() failures in get_interface_address6()
...
The third argument for connect should be dependent on the address
family. Issue spotted by piebeer who also wrote the patch.
2011-03-05 16:57:05 +01:00
Nick Mathewson
f608872b0c
C style fix: a no-args function is void fn(void), not void fn().
2011-03-03 23:42:14 -05:00
Nick Mathewson
8ae179deec
Add a magic field to tor_tls_t to catch exdata corruption bugs, if any appear.
2011-03-03 23:41:34 -05:00
Robert Ransom
74fc993b98
Check the result of SSL_set_ex_data
...
Reported by piebeer.
2011-03-03 16:17:39 -08:00
Robert Ransom
fe1137be6f
Use SSL_*_ex_data instead of SSL_*_app_data
...
SSL_*_app_data uses ex_data index 0, which will be the first one allocated
by SSL_get_ex_new_index. Thus, if we ever started using the ex_data feature
for some other purpose, or a library linked to Tor ever started using
OpenSSL's ex_data feature, Tor would break in spectacular and mysterious
ways. Using the SSL_*_ex_data functions directly now may save us from
that particular form of breakage in the future.
But I would not be surprised if using OpenSSL's ex_data functions at all
(directly or not) comes back to bite us on our backends quite hard. The
specified behaviour of dup_func in the man page is stupid, and
crypto/ex_data.c is a horrific mess.
2011-03-03 15:34:53 -08:00
Robert Ransom
13ee803469
Remove now-unused helper functions
...
These functions were needed only by code removed in the preceding commit.
Reported by mobmix.
2011-03-03 14:59:21 -08:00
Gladys Shufflebottom
49de5431d5
remove tls related hash table code
2011-03-01 18:11:25 -05:00
Nick Mathewson
46b07462ae
Merge remote branch 'origin/maint-0.2.2'
2011-02-22 13:02:42 -05:00
Nick Mathewson
9d5873cdae
Merge branch 'log_domains' into maint-0.2.2
2011-02-22 13:01:02 -05:00
Nick Mathewson
ce149c1022
That shalt also not have a label without a statement.
2011-02-22 12:52:52 -05:00
Nick Mathewson
933ffd536d
Merge remote branch 'origin/maint-0.2.2'
2011-02-22 12:47:47 -05:00
Sebastian Hahn
098b6ba72d
Initial heartbeat subsystem commit.
...
Sets:
* Documentation
* Logging domain
* Configuration option
* Scheduled event
* Makefile
It also creates status.c and the log_heartbeat() function.
All code was written by Sebastian Hahn. Commit message was
written by me (George Kadianakis).
2011-02-22 12:40:36 -05:00
Sebastian Hahn
5dbaf9dbd5
Windows has EACCES, not EACCESS
...
Once again spotted by mobmix
Also add a changes file for the fix
2011-02-11 17:02:26 +01:00
Nick Mathewson
50c259d763
Make the DH parameter we use for TLS match the one from Apache's mod_ssl
...
Our regular DH parameters that we use for circuit and rendezvous
crypto are unchanged. This is yet another small step on the path of
protocol fingerprinting resistance.
(Backport from 0.2.2's 5ed73e3807
)
2011-02-10 15:55:06 -05:00
Nick Mathewson
f25fc6e650
Merge remote branch 'origin/maint-0.2.2'
2011-02-08 14:02:43 -05:00
Sebastian Hahn
9c7e2cf010
Locking failures on windows are indicated by EACCES
...
Patch our implementation of tor_lockfile_lock() to handle this case
correctly. Also add a note that blocking behaviour differs from windows
to *nix. Fixes bug 2504, issue pointed out by mobmix.
2011-02-08 18:35:07 +01:00
Robert Ransom
0ab8b7c0f2
Thou shalt not overflow even stupidly small buffers
2011-02-04 05:50:44 -08:00
Nick Mathewson
912b76a1bf
Merge remote branch 'origin/maint-0.2.2'
2011-02-03 13:56:37 -05:00
Nick Mathewson
e80bdfb4a0
Correctly detect BIO_new failures
...
This bug was noticed by cypherpunks; fixes bug 2378.
Bugfix on svn commit r110.
2011-01-25 18:26:49 -05:00
Nick Mathewson
bfde636aad
Always treat failure to allocate an RSA key as an unrecoverable allocation error
2011-01-25 18:19:09 -05:00
Nick Mathewson
76582442a8
Handle failing cases of DH allocation
2011-01-25 18:09:38 -05:00
Nick Mathewson
c939c953ae
Remove an unused function in crypto.c
2011-01-25 18:07:02 -05:00
Nick Mathewson
89ee779f92
Add a torrc option to report log domains
2011-01-25 15:53:15 -05:00
Nick Mathewson
e261a1a3e6
Simplify syntax for negated log domains
...
Previously if you wanted to say "All messages except network
messages", you needed to say "[*,~net]" and if you said "[~net]" by
mistake, you would get no messages at all. Now, if you say "[~net]",
you get everything except networking messages.
2011-01-25 15:03:36 -05:00
Nick Mathewson
aaa5737a2e
Merge remote branch 'origin/maint-0.2.2'
2011-01-24 17:51:52 -05:00
Nick Mathewson
5ed73e3807
Make the DH parameter we use for TLS match the one from Apache's mod_ssl
...
Our regular DH parameters that we use for circuit and rendezvous
crypto are unchanged. This is yet another small step on the path of
protocol fingerprinting resistance.
2011-01-24 16:50:11 -05:00
Nick Mathewson
07888ed8e4
Merge remote branch 'origin/maint-0.2.2'
2011-01-15 14:17:59 -05:00
Nick Mathewson
a7790d48af
Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2
2011-01-15 14:15:19 -05:00
Nick Mathewson
9b09627edd
Zero out some more key data before freeing it
...
Found by cypherpunks; fixes bug 2384.
2011-01-15 14:10:52 -05:00
Nick Mathewson
1758ef51de
Merge remote branch 'origin/maint-0.2.2'
2011-01-15 13:26:02 -05:00
Nick Mathewson
1393985768
Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2
...
Conflicts:
src/or/routerparse.c
src/or/test.c
2011-01-15 13:25:13 -05:00
Nick Mathewson
b97b0efec8
Merge branch 'bug2352_obsize' into maint-0.2.1
2011-01-15 13:15:06 -05:00
Robert Ransom
7ea674e0e0
Remove some unnecessary occurrences of +1.
...
I dug through the OpenSSL source and verified that RSA_private_decrypt will
not write more than RSA_size(key) bytes to its output buffer.
2011-01-15 13:11:44 -05:00
Nick Mathewson
f550c96ade
Merge remote branch 'origin/maint-0.2.2'
2011-01-15 12:16:18 -05:00
Nick Mathewson
cff4cfef4f
Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2
2011-01-15 12:13:50 -05:00
Nick Mathewson
8f11642ceb
Merge branch 'bug2324_uncompress' into maint-0.2.1
2011-01-15 12:12:34 -05:00
Nick Mathewson
1fcfc18628
clean up message; explain a magic number in a comment
2011-01-15 12:12:10 -05:00
Nick Mathewson
1b8f2ef550
Merge remote branch 'origin/maint-0.2.2'
2011-01-15 12:03:44 -05:00
Nick Mathewson
ed87738ede
Merge remote branch 'origin/maint-0.2.1' into maint-0.2.2
...
Conflicts:
src/or/config.c
src/or/networkstatus.c
src/or/rendcommon.c
src/or/routerparse.c
src/or/test.c
2011-01-15 12:02:55 -05:00
Nick Mathewson
115782bdbe
Fix a heap overflow found by debuger, and make it harder to make that mistake again
...
Our public key functions assumed that they were always writing into a
large enough buffer. In one case, they weren't.
(Incorporates fixes from sebastian)
2011-01-15 11:49:25 -05:00