Nick Mathewson
ab1a679eef
Fix a small memory leak when resolving PTR addresses
...
Fixes bug 11437; bugfix on 0.2.4.7-alpha.
Found by coverity; this is CID 1198198.
2014-04-07 23:29:47 -04:00
Nick Mathewson
f0bce2dc35
Fix some harmless/untriggerable memory leaks found by coverity
2014-04-07 23:20:13 -04:00
Nick Mathewson
595303fd1e
Merge remote-tracking branch 'public/bug10363_024_squashed'
2014-04-07 23:03:04 -04:00
Nick Mathewson
6d9c332757
Another 10363 instance -- this one in the eventdns.c code
2014-04-07 22:56:42 -04:00
Nick Mathewson
9dd115d6b5
Another 10363 instance: this one in tor_memmem fallback code
2014-04-07 22:56:42 -04:00
Nick Mathewson
092ac26ea2
Fix undefined behavior with pointer addition in channeltls.c
...
In C, it's a bad idea to do this:
char *cp = array;
char *end = array + array_len;
/* .... */
if (cp + 3 >= end) { /* out of bounds */ }
because cp+3 might be more than one off the end of the array, and
you are only allowed to construct pointers to the array elements,
and to an element one past the end. Instead you have to say
if (cp - array + 3 >= array_len) { /* ... */ }
or something like that.
This patch fixes two of these: one in process_versions_cell
introduced in 0.2.0.10-alpha, and one in process_certs_cell
introduced in 0.2.3.6-alpha. These are both tracked under bug
10363. "bobnomnom" found and reported both. See also 10313.
In our code, this is likely to be a problem as we used it only if we
get a nasty allocator that makes allocations end close to (void*)-1.
But it's best not to have to worry about such things at all, so
let's just fix all of these we can find.
2014-04-07 22:56:42 -04:00
Nick Mathewson
90341b4852
For missing transport, say "PT_MISSING" not "NO_ROUTE"
2014-04-07 13:44:22 -04:00
Nick Mathewson
754a50592c
Forward-port bug9665 fix to work with our fix for 11069
2014-04-07 13:41:07 -04:00
Fábio J. Bertinatto
08ae53e400
Fix bug9665
2014-04-07 13:36:36 -04:00
Nick Mathewson
9ccedbece0
Make csiphash use the proper endian-converter on solaris
...
fixes bug 11426; bugfix on 0.2.5.3-alpha, where csiphash was
introduced.
2014-04-07 13:07:14 -04:00
Nick Mathewson
bc0882c868
Merge remote-tracking branch 'public/bug9650'
2014-04-05 14:53:48 -04:00
Nick Mathewson
2ff664ee20
Merge remote-tracking branch 'public/bug10801_024'
...
Conflicts:
src/common/address.c
src/or/config.c
2014-04-05 14:50:57 -04:00
Nick Mathewson
b3469e4207
Make tor_addr_port_parse handle portless IPv6 addresses correctly.
...
(Not a bugfix on any Tor release; before 10801_024, it didn't handle
portless addresses at all.)
2014-04-05 14:41:37 -04:00
Nick Mathewson
eefa3ebc78
Add a test for default/port conflicts in tor_addr_port_parse
2014-04-05 14:18:39 -04:00
Nick Mathewson
8f16a77d6a
Protocol_Warn when a rendezvous cookie is used twice.
2014-04-04 12:17:16 -04:00
Nick Mathewson
d22ce149c8
Test for circuit_set_rend_token(.,.,NULL)
2014-04-04 12:06:54 -04:00
Nick Mathewson
1bb6e3b503
Merge remote-tracking branch 'public/bug9841_024_v2' into bug9841_025
2014-04-04 12:05:51 -04:00
Nick Mathewson
09dbcf3b82
Fix to 9841 fix: setting a token to NULL should clear it
...
Found by testing with chutney. The old behavior was "fail an
assertion", which obviously isn't optimal.
Bugfix on 8b9a2cb68b290e550695124d7ef0511225b451d5; bug not in any
released version.
2014-04-04 12:01:49 -04:00
Nick Mathewson
d290e36576
Fix make_socket_reusable() on windows. Bug not in any released Tor
2014-04-02 21:11:45 -04:00
Nick Mathewson
24c4b56a39
Merge remote-tracking branch 'public/bug10081'
2014-04-02 15:45:20 -04:00
Nick Mathewson
da908a593f
Unit tests for connection_edge_process_resolved_cell
...
Also rename a function to be more accurate (resolve->resolved)
2014-04-02 15:38:00 -04:00
Nick Mathewson
4215c801ff
Tests for resolved_cell_parse
2014-04-02 15:38:00 -04:00
Nick Mathewson
c230ff4ca9
Look at all of a RESOLVED cell; not just the first answer.
...
Also, stop accepting the old kind of RESOLVED cells with no TTL
fields; they haven't been sent since 0.1.1.6-alpha.
This patch won't work without the fix to #10468 -- it will break
DNSPorts unless they set the proper ipv4/6 flags on entry_connection_t.
2014-04-02 15:38:00 -04:00
Nick Mathewson
2f59d6e2d8
Drop MAX_REND_FAILURES to 8
2014-04-02 15:36:13 -04:00
Nick Mathewson
4fb3ae69a6
Extract code to handle RESOLVED cells
...
No other changes have been made; only code has been moved.
2014-04-01 23:30:41 -04:00
Nick Mathewson
17d5734df4
Merge remote-tracking branch 'public/bug11278'
2014-04-01 21:56:49 -04:00
Nick Mathewson
86f619d0d3
Merge remote-tracking branch 'public/bug10468_024'
2014-04-01 21:50:55 -04:00
Nick Mathewson
fc9e84062b
Merge remote-tracking branch 'public/bug4645'
...
Conflicts:
src/or/dirserv.c
2014-04-01 21:49:01 -04:00
Nick Mathewson
408bd98e79
Add one more missing heck on bug4645 fixes
2014-04-01 21:10:14 -04:00
Nick Mathewson
b4b91864bb
Merge remote-tracking branch 'public/bug9870'
...
Conflicts:
src/or/config.c
2014-04-01 20:48:15 -04:00
Nick Mathewson
6bef082d0a
Merge remote-tracking branch 'public/bug11232'
2014-04-01 09:39:48 -04:00
Nick Mathewson
c0441cca8b
Merge branch 'bug8787_squashed'
2014-03-31 11:57:56 -04:00
Nick Mathewson
1a9b4bd28c
Munmap the right pointers in routerlist_free()
2014-03-31 11:43:51 -04:00
Nick Mathewson
449b87791d
NULL out all mappings after tor_munmap_file()
2014-03-31 11:42:49 -04:00
Nick Mathewson
8e94d5f22e
Check return values for tor_munmap_file() in unit tests
2014-03-31 11:40:00 -04:00
Nick Mathewson
7cdb50e866
Handle tor_munmap_file(NULL) consistently
2014-03-31 11:35:39 -04:00
Andrea Shepard
dea8190111
Check strftime() return in tortls.c
2014-03-31 11:27:08 -04:00
Andrea Shepard
0938c20fa3
Eliminate lseek() with unchecked return in tor_mmap_file()
2014-03-31 11:27:08 -04:00
Andrea Shepard
abdf1878a3
Always check returns from unlink()
2014-03-31 11:27:08 -04:00
Andrea Shepard
df076eccfa
Always check returns from tor_munmap_file() in microdesc.c
2014-03-31 11:27:08 -04:00
Andrea Shepard
947a6daa31
Always check returns from tor_munmap_file() in routerlist.c
2014-03-31 11:27:08 -04:00
Andrea Shepard
389251eda9
Add return value and assert for null parameter to tor_munmap_file()
2014-03-31 11:27:08 -04:00
Nick Mathewson
f82e499aa5
Merge remote-tracking branch 'public/bug11342'
2014-03-31 10:51:09 -04:00
Nick Mathewson
5e0cfba969
Fix a clang compilation warning
...
Subtracting two time_t values was yielding something that maybe
can't be fit in an int.
Bugfix on 0389d4aa; bug not in any released Tor.
2014-03-31 10:07:42 -04:00
Nick Mathewson
bfe783f167
Make dump_desc() use binary mode
...
Otherwise, it could mung the thing that came over the net on windows,
which would defeat the purpose of recording the unparseable thing.
Fixes bug 11342; bugfix on 0.2.2.1-alpha.
2014-03-27 23:53:03 -04:00
Nick Mathewson
9efd970dd9
Merge branch 'bug9658_refactor'
2014-03-27 23:00:28 -04:00
Nick Mathewson
6ad7f3417c
Renamed "onionskins_completed" to "onionskins_assigned"
...
This improves the accuracy of the function/variable names.
2014-03-27 22:57:53 -04:00
Nick Mathewson
46a3914079
Respond to AAAA requests on DNSPort with AAAA automaps
...
Other DNS+IPv6 problems remain, but at least this fixes the
automapping.
Fixes bug 10468; bugfix on 0.2.4.7-alpha.
2014-03-27 17:41:43 -04:00
Nick Mathewson
753a246a14
check outputs from get_first_listener_addrport_string
...
Fix for 9650; bugfix for 0.2.3.16-alpha.
2014-03-27 17:12:01 -04:00
Nick Mathewson
b0bbe6b2f1
Report only the first bootstrap failure from an orconn
...
Otherwise, when we report "identity mismatch", we then later report
DONE when the connection gets closed.
Fixes bug 10431; bugfix on 0.2.1.1-alpha.
2014-03-27 15:58:43 -04:00
Nick Mathewson
24e0b1088a
whitespace fix
2014-03-27 15:34:57 -04:00
Nick Mathewson
9c0a1adfa2
Don't do a DNS lookup on a bridge line address
...
Fixes bug 10801; bugfix on 07bf274d
in 0.2.0.1-alpha.
2014-03-27 15:31:29 -04:00
Nick Mathewson
2721246f5d
Merge branch 'bug7164_diagnose_harder_v2'
2014-03-27 14:26:21 -04:00
Nick Mathewson
0389d4aa56
More logs to try to diagnose bug 7164
...
This time, check in microdesc_cache_clean() to see what could be
going wrong with an attempt to clean a microdesc that's held by a node.
2014-03-27 14:23:19 -04:00
Nick Mathewson
60abc4804f
Don't warn when setsockopt(SO_REUSEABLE) on accept()ed socket says EINVAL
...
This should fix bug10081. I believe this bug pertains to OSX
behavior, not any Tor behavior change.
2014-03-27 13:55:18 -04:00
Nick Mathewson
0b43c499b2
Merge remote-tracking branch 'public/bug11296'
2014-03-26 11:46:51 -04:00
Nick Mathewson
6da2544f20
Turn off testing code for #9683 .
...
(This wasn't supposed to get committed turned-on.)
2014-03-26 10:31:56 -04:00
Nick Mathewson
07eb481492
Demote "Invalid length on ESTABLISH_RENDEZVOUS" to protocol_warn
...
Fixes bug 11279
2014-03-25 11:55:27 -04:00
Nick Mathewson
d5e11f21cc
Fix warnings from doxygen
...
Most of these are simple. The only nontrivial part is that our
pattern for using ENUM_BF was confusing doxygen by making declarations
that didn't look like declarations.
2014-03-25 11:27:43 -04:00
Nick Mathewson
e83eddd113
Add missing -Isrc/ext to tor-fw-helper/include.am
...
We need this now that tor-fw-helper will pull in siphash.h
Fixes bug 11296; bugfix on 0.2.5.4-alpha where siphash.h was introduced.
2014-03-25 10:21:07 -04:00
Nick Mathewson
852fd1819e
Free placeholder circid/chan->circuit map entries on exit
...
In circuitlist_free_all, we free all the circuits, removing them from
the map as we go, but we weren't actually freeing the placeholder
entries that we use to indicate pending DESTROY cells.
Fix for bug 11278; bugfix on the 7912 code that was merged in
0.2.5.1-alpha
2014-03-25 10:14:26 -04:00
Roger Dingledine
85ef58e5ba
quiet the debug message in circuit_build_times_disabled()
...
something recently made it get called once per second, which will clutter
up your debug log file.
2014-03-24 02:33:17 -04:00
Nick Mathewson
6709a1f58d
Merge remote-tracking branch 'arma/bug11276'
2014-03-23 15:57:56 -04:00
Nick Mathewson
3ddbf2880f
Merge remote-tracking branch 'public/bug11275_024'
2014-03-23 15:56:23 -04:00
Roger Dingledine
eff16e834b
Stop leaking 'sig' at each call of router_append_dirobj_signature()
...
The refactoring in commit cb75519b
(tor 0.2.4.13-alpha) introduced
this leak.
2014-03-23 15:53:51 -04:00
Roger Dingledine
ddaeb4deee
Be more lenient in our fix for bug 11149
...
There are still quite a few 0.2.3.2x relays running for x<5, and while I
agree they should upgrade, I don't think cutting them out of the network
is a net win on either side.
2014-03-23 02:53:08 -04:00
Roger Dingledine
c08b47977e
Never run crypto_early_init() more than once
...
Previously we had set up all the infrastructure to avoid calling it
after the first time, but didn't actually use it.
2014-03-23 00:38:17 -04:00
Nick Mathewson
f560eeadc3
Remove the unused circuit_dump_by_chan().
...
Also remove its helper function.
2014-03-23 00:28:39 -04:00
Nick Mathewson
2cfc4453c2
Merge remote-tracking branch 'public/bug9683_rebased'
2014-03-23 00:20:05 -04:00
Nick Mathewson
f4e2c72bee
Merge remote-tracking branch 'karsten/task-11070'
2014-03-23 00:18:48 -04:00
Nick Mathewson
f2c6c5e69c
Merge branch 'ticket11149'
2014-03-23 00:18:11 -04:00
Nick Mathewson
a53e9bfeb4
bump to 0.2.5.3-alpha-dev
2014-03-23 00:15:25 -04:00
Roger Dingledine
d336d407d6
whitespace fix
2014-03-23 00:12:40 -04:00
Nick Mathewson
2bd7280d79
Increment version to 0.2.5.3-alpha
2014-03-22 21:07:50 -04:00
Nick Mathewson
a83abcf5ee
Fix unittest compilation with --disable-curve25519
...
This is a fix for 9700, which we already fixed in 0.2.5.x, but which
got left in 0.2.4.x.
This is a partial backport of a0a855d586
2014-03-20 13:53:32 -04:00
Andrea Shepard
3b31b45ddb
Appease make check-spaces
2014-03-18 10:26:44 -07:00
Nick Mathewson
dfdeb6418d
Fix a ubsan warning in addr_mask_get_bits
...
ubsan doesn't like us to do (1u<<32) when 32 is wider than
unsigned. Fortunately, we already special-case
addr_mask_get_bits(0), so we can just change the loop bounds.
2014-03-18 10:49:39 -04:00
Nick Mathewson
2aea6ca326
Fix a ubsan warning in our ctypes replacements
...
ubsan doesn't like 1<<31, since that's an undefined integer
overflow. Instead, we should do 1u<<31.
2014-03-18 10:47:26 -04:00
Nick Mathewson
aaa33f144c
csiphash: don't attempt unaligned access
...
In digestmap_set/get benchmarks, doing unaligned access on x86
doesn't save more than a percent or so in the fast case. In the
slow case (where we cross a cache line), it could be pretty
expensive. It also makes ubsan unhappy.
2014-03-18 10:43:46 -04:00
Nick Mathewson
204f7255f4
memarea.c: use flexible array member for mem
...
This make clang's memory sanitizer happier that we aren't reading
off the end of a char[1]. We hadn't replaced the char[1] with a
char[FLEXIBLE_ARRAY_MEMBER] before because we were doing a union
trick to force alignment. Now we use __attribute__(aligned) where
available, and we do the union trick elsewhere.
Most of this patch is just replacing accesses to (x)->u.mem with
(x)->U_MEM, where U_MEM is defined as "u.mem" or "mem" depending on
our implementation.
2014-03-18 10:02:27 -04:00
Nick Mathewson
98b1aad201
Fix a use-after-free in test_circuitlist.c
...
Found by clang-3.4 analyzers.
2014-03-18 09:47:13 -04:00
Karsten Loesing
7450403410
Take out remaining V1 directory code.
2014-03-18 10:40:10 +01:00
Nick Mathewson
d769cab3e5
Defensive programming: null [pn]_chan,circ_id in circuit_mark_for_close_
...
Doing this as part of the patch for #9683 to prevent possible bugs
down the line
2014-03-14 11:58:34 -04:00
Nick Mathewson
1a74360c2d
Test code for implementation of faster circuit_unlink_all_from_channel
...
This contains the obvious implementation using the circuitmux data
structure. It also runs the old (slow) algorithm and compares
the results of the two to make sure that they're the same.
Needs review and testing.
2014-03-14 11:57:51 -04:00
Nick Mathewson
102bb1c04f
Update to latest tinytest
...
(This pulls in some fixes to tinytest_demo.c, which Tor doesn't build.)
2014-03-14 10:09:04 -04:00
Nick Mathewson
119896cd43
Fix some leaks/missed checks in the unit tests
...
Coverity spotted these.
2014-03-13 10:07:10 -04:00
Nick Mathewson
df836b45b0
Merge remote-tracking branch 'asn/bug5018_notice'
2014-03-12 11:10:51 -04:00
Nick Mathewson
9077118ee2
Remove the unused router_hex_digest_matches
...
When I removed some unused functions in 5bfa373eee
, this became
unused as well.
2014-03-11 11:17:46 -04:00
Nick Mathewson
cce06b649e
Merge remote-tracking branch 'asn/bug11069_take2'
2014-03-11 11:04:47 -04:00
George Kadianakis
1c475eb018
Throw control port warning if we failed to connect to all our bridges.
2014-03-10 22:52:07 +00:00
George Kadianakis
cc1bb19d56
Tone down the log message for when we don't need a PT proxy.
2014-03-10 22:05:31 +00:00
Nick Mathewson
b8ceb464e5
Merge branch 'bug11156_squashed'
2014-03-10 14:08:38 -04:00
Nick Mathewson
0c04416c11
Merge branch 'bug11043_take2_squashed'
2014-03-10 14:08:29 -04:00
George Kadianakis
6606e676ee
Don't do directory fetches before all PTs have been configured.
2014-03-10 14:07:56 -04:00
George Kadianakis
8c8e21e296
Improve the log message for when the Extended ORPort is not enabled.
2014-03-10 12:54:46 -04:00
Nick Mathewson
1365ff5b9a
Upgrade to the latest version of tinytest.
...
This brings us to tinytest commit 709a36ba63ff16d8.
The only big change tor-side is that we don't need our own test_mem_op
operation any longer.
2014-03-06 18:06:08 -05:00
Nick Mathewson
065097b81b
tinytest tt_{mem,str}_op now handle NULLs better
...
Now a NULL argument to either makes it fail, not crash.
Fies bug 9004; bugfix on 0.2.2.4-alpha.
2014-03-06 12:12:13 -05:00
Nick Mathewson
a50690e68f
Merge remote-tracking branch 'origin/maint-0.2.4'
2014-03-06 11:52:22 -05:00
Nick Mathewson
4a2a1e572e
Merge branch 'bug11108'
2014-03-06 10:22:40 -05:00
Nick Mathewson
cbf9e74236
Correct the URL in the "a relay on win95???" message
...
This is a fix for 9393; it's not a bugfix on any Tor version per se,
but rather on whatever Tor version was current when we reorganized the
wiki.
2014-03-06 09:57:42 -05:00