Nick Mathewson
b53a2059c4
Expose crypto_digest_algorithm_get_length from crypto.c
...
Also, use it in routerparse.c
2016-05-23 10:58:27 -04:00
Nick Mathewson
f2205071f0
Remove round_int64_to_next_multiple_of: It is now unused.
2016-05-19 21:21:24 -04:00
Nick Mathewson
6d6c8287d5
Include __mulodi4 in libor_ctime when it fixes clang -m32 -ftrapv
...
We use a pretty specific pair of autoconf tests here to make sure
that we only add this code when:
a) a 64-bit signed multiply fails to link,
AND
b) the same 64-bit signed multiply DOES link correctly when
__mulodi4 is defined.
Closes ticket 19079.
2016-05-18 09:50:38 -04:00
Nick Mathewson
060e0d0a75
Merge branch 'crypto_unit_tests_v2_squashed'
2016-05-16 08:26:11 -04:00
Nick Mathewson
62c5a1fa45
Mark even more crypto lines (the fragile_assert ones) as unreachable
2016-05-16 08:26:00 -04:00
Nick Mathewson
b688945dfb
Refactor digest allocation backend code
...
I'm doing this to simplify crypto_digest_smartlist_prefix, and make
it better covered by our tests.
2016-05-16 08:26:00 -04:00
Nick Mathewson
365d0fcc6d
Cover all our DH code, and/or mark it unreachable.
2016-05-16 08:26:00 -04:00
Nick Mathewson
98a590577a
Treat absent argument to crypto_log_errors as a bug.
2016-05-16 08:26:00 -04:00
Nick Mathewson
d88656ec06
Slight improvements to DH coverage.
2016-05-16 08:25:59 -04:00
Nick Mathewson
c395334879
Mark some unreachable lines in crypto.c
2016-05-16 08:25:59 -04:00
Nick Mathewson
7a5f15b6e0
Improve test coverage of our strongest-rng code.
2016-05-16 08:25:59 -04:00
Nick Mathewson
ec81329339
Do not leak the 'tag' when trying to read a truncated ed25519 key file
...
Fix for bug 18956.
2016-05-16 08:25:59 -04:00
Nick Mathewson
5b91e70a4f
Mark unreachable lines in crypto_ed25519.c
2016-05-16 08:25:59 -04:00
Nick Mathewson
8a536be705
Mark unreachable lines in crypto_curve25519.c
...
Also, resolve a bug in test_ntor_cl.c
2016-05-16 08:25:53 -04:00
Nick Mathewson
820b1984ad
Mark three lines unreachable, with extensive docs and use of BUG macros
2016-05-16 08:25:53 -04:00
Nick Mathewson
7bc9d1e002
Merge branch 'maint-0.2.8'
2016-05-12 15:33:56 -04:00
Nick Mathewson
e8cc9f3edf
Merge branch 'maint-0.2.7' into maint-0.2.8
2016-05-12 15:33:47 -04:00
Nick Mathewson
4165b1a0da
Merge branch 'bug18977_026_v2' into maint-0.2.7
2016-05-12 15:33:35 -04:00
Nick Mathewson
44cbd00dfa
Fix a compiler warning on windows when sizeof(long)==sizeof(int)
2016-05-12 14:51:38 -04:00
Nick Mathewson
20b01cece8
Merge branch 'bug18977_024_v2' into bug18977_026_v2
...
Had conflicts related to other correct_tm bugs in 0.2.6. Added wday
for another case.
2016-05-12 14:39:06 -04:00
Nick Mathewson
e57f26c135
Have correct_tm set tm_wday as well.
...
The tm_wday field had been left uninitialized, which was causing
some assertions to fail on Windows unit tests.
Fixes bug 18977.
2016-05-12 14:37:27 -04:00
Nick Mathewson
6bc052365a
Use a much less clever scan_signed no-overflow hack
2016-05-12 14:33:26 -04:00
Nick Mathewson
445e05a015
Fix inconsistent tab/space mixing in include.am files.
...
This is a whitespace only, cosmetic fix.
There is still some inconsistency between lists, but less
inconsistency inside individual lists.
2016-05-12 13:06:58 -04:00
Nick Mathewson
607a9056d4
Merge branch 'ftrapv_v3'
...
There were some conflicts here, and some breakage to fix concerning
library link order in newer targets.
2016-05-12 13:00:45 -04:00
Nick Mathewson
ef01109932
Rename SOURCES to SRC for things in include.am
2016-05-12 11:21:28 -04:00
Nick Mathewson
e40cfc4425
Move the ctime part of choose_array_element_by_weight into di_ops
...
This way it gets the ctime options.
2016-05-12 11:21:28 -04:00
Nick Mathewson
ce854a8d22
Add -ftrapv to gcc-hardening ... mostly!
...
We know there are overflows in curve25519-donna-c32, so we'll have
to have that one be fwrapv.
Only apply the asan, ubsan, and trapv options to the code that does
not need to run in constant time. Those options introduce branches
to the code they instrument.
(These introduced branches should never actually be taken, so it
might _still_ be constant time after all, but branch predictors are
complicated enough that I'm not really confident here. Let's aim for
safety.)
Closes 17983.
2016-05-12 11:21:28 -04:00
Nick Mathewson
99c0e1bd5b
Fix bad allocation in pubsub.c
...
Closes 19038. Bug not in any released Tor.
2016-05-12 09:56:42 -04:00
Nick Mathewson
00ee62b8a5
Merge branch 'pubsub_squashed'
2016-05-11 13:26:29 -04:00
Nick Mathewson
80a6c8caa3
Basic work on a publish/subscribe abstraction
...
The goal here is to provide a way to decouple pieces of the code
that want to learn "when something happens" from those that realize
that it has happened.
The implementation here consists of a generic backend, plus a set of
macros to define and implement a set of type-safe frontends.
2016-05-11 13:25:11 -04:00
Nick Mathewson
69380033d6
Merge branch 'timeouts_v2_squashed'
2016-05-09 14:06:10 -04:00
Nick Mathewson
11a09778d6
Test coverage for timers.
2016-05-09 14:04:54 -04:00
Nick Mathewson
118556e4b3
Quick-and-dirty test for timers code.
2016-05-09 14:04:53 -04:00
Nick Mathewson
dcf948da06
Add wrappers to tie the new timeouts into libevent.
2016-05-09 14:04:06 -04:00
Nick Mathewson
2384256a37
Merge branch 'maint-0.2.8'
2016-05-04 15:12:20 -04:00
Nick Mathewson
b8e8910d60
Merge branch 'bug18686_025' into maint-0.2.8
2016-05-04 15:12:11 -04:00
Nick Mathewson
c7b9e0b8ed
Report success when not terminating an already terminated process.
...
Also, document the actual behavior and return values of
tor_terminate_process.
Fixes bug18686; bugfix on 0.2.3.9-alpha.
2016-05-04 15:10:36 -04:00
Nick Mathewson
bff53aabce
Remove redundant declarations of MIN
...
Apparently somewhere along the line we decided that MIN might be
missing.
But we already defined it (if it was missing) in compat.h, which
everybody includes.
Closes ticket 18889.
2016-04-25 15:28:58 -04:00
Nick Mathewson
26db1b65b9
Remove trunnel files from libor/libcrypto, since they are in libtrunnel. Found with modularity tool.
2016-04-20 13:39:07 -04:00
Nick Mathewson
520799f084
Merge branch 'handles_squashed'
2016-04-19 14:08:05 -04:00
Nick Mathewson
e015f7c9cc
Basic 'handle' implementation and tests.
...
This abstraction covers the case where one part of the program needs
to refer to another object that is allowed to disappear.
2016-04-19 14:07:43 -04:00
Nick Mathewson
94e3555187
Merge remote-tracking branch 'public/lcov_excl'
2016-04-19 14:05:51 -04:00
Nick Mathewson
12e26a6e76
Disambiguate: Avoid defining two static functions called chunk_free_unchecked
2016-04-15 12:20:14 -04:00
Nick Mathewson
381dae43b6
Add branch prediction to util_bug.h, and fix a bug.
2016-04-15 09:12:03 -04:00
Nick Mathewson
05499b6ded
Add timeouts to libor-event.a
2016-04-15 09:03:22 -04:00
Nick Mathewson
0e354ad459
Merge branch 'assert_nonfatal_squashed'
2016-04-14 16:25:21 -04:00
Nick Mathewson
a86ed1d717
Add an IF_BUG_ONCE macro, since that's a pretty common pattern too.
2016-04-14 16:25:07 -04:00
Nick Mathewson
532820b11c
Add a BUG macro for usage in if checks.
2016-04-14 16:25:06 -04:00
Nick Mathewson
a885271c08
Add new tor_assert_nonfatal*() macros.
...
Unlike tor_assert(), these macros don't abort the process. They're
good for checking conditions we want to warn about, but which don't
warrant a full crash.
This commit also changes the default implementation for
tor_fragile_assert() to tor_assert_nonfatal_unreached_once().
Closes ticket 18613.
2016-04-14 16:24:28 -04:00
Nick Mathewson
0630f1982d
Add LCOV_EXCL* markers to crypto.c and crypto_s2k.c
...
This marks some lines as unreachable by the unit tests, and as
therefore excluded from test coverage.
(Note: This convention is only for lines that are absolutely
unreachable. Don't use it anywhere you wouldn't add a
tor_fragile_assert().)
2016-04-12 21:13:33 -04:00