Nick Mathewson
0b4221f98d
Make the current time an argument to x509 cert-checking functions
...
This makes the code a bit cleaner by having more of the functions be
pure functions that don't depend on the current time.
2016-11-03 08:37:22 -04:00
Nick Mathewson
b004ff45d7
New authentication types to use RFC5705.
...
See proposal 244. This feature lets us stop looking at the internals
of SSL objects, *and* should let us port better to more SSL libraries,
if they have RFC5705 support.
Preparatory for #19156
2016-11-03 08:37:20 -04:00
Nick Mathewson
4c55e8a58f
Fix cases where the tests were doing closesocket() on a non-socket
...
These seem to have caused warnings on windows. Hmmm.
2016-09-09 10:28:12 -04:00
Nick Mathewson
5e30e26c6d
Chop another ~93 RSA key generations out of the unit tests
...
We have a mock for our RSA key generation function, so we now wire
it to pk_generate(). This covers all the cases that were not using
pk_generate() before -- all ~93 of them.
2016-09-09 09:45:50 -04:00
Nick Mathewson
3269307daf
Treat all nonfatal assertion failures as unit test failures.
...
Part of 19999.
2016-09-08 13:27:30 -04:00
Nick Mathewson
d09723ad19
Add facility to suppress/capture tor_bug_occurred_() messages in unit tests.
2016-09-06 21:01:17 -04:00
Nick Mathewson
2b39c927c7
Add !(...) to BUG() log messages
...
They use the same code as reporting assertion failures, so we should
invert the sense of what we're "asserting".
Fixes bug 20093.
2016-09-06 21:00:51 -04:00
Nick Mathewson
5927ed8d33
checkSpace.pl now forbids more identifiers.
...
The functions it warns about are:
assert, memcmp, strcat, strcpy, sprintf, malloc, free, realloc,
strdup, strndup, calloc.
Also, fix a few lingering instances of these in the code. Use other
conventions to indicate _intended_ use of assert and
malloc/realloc/etc.
2016-09-06 12:35:37 -04:00
teor (Tim Wilson-Brown)
41ad244dd6
Fix a comment typo in smartlist_get_most_frequent_()
2016-09-06 17:49:44 +10:00
Nick Mathewson
251b348d7b
It is not a bug to attempt to base32_decode a non-base32 string
...
(Rationale: it isn't a bug to try this for a base16 or base64
string. It's just a bad input that we're detecting.)
2016-08-31 14:31:00 -04:00
Nick Mathewson
69dce09031
Do not call tor_tls_server_info_callback(NULL) from tests.
...
This isn't valid behavior, and it causes a crash when you run
the unit tests at --debug.
I've added an IF_BUG_ONCE() check for this case.
2016-08-31 13:18:13 -04:00
Nick Mathewson
f74916a98f
setup_capture_of_logs: no longer suppress log messages
...
Previously setup_capture_of_logs would prevent log messages from
going to the console entirely. That's a problem, since sometimes
log messages are bugs! Now setup_capture_of_logs() acts sensibly.
If you really do need to keep a message from going to the console
entirely, there is setup_full_capture_of_logs(). But only use that
if you're prepared to make sure that there are no extraneous
messages generated at all.
2016-08-31 12:51:22 -04:00
Nick Mathewson
40d05983c4
Fix some comments in sandbox.c
...
Closes ticket 19942; patch from "cypherpunks"
2016-08-23 10:02:11 -04:00
Nick Mathewson
a3d419634b
Merge remote-tracking branch 'asn/bug19872_v2'
2016-08-23 08:50:32 -04:00
George Kadianakis
b8bfdf638e
Introduce ed25519_{sign,checksig}_prefixed functions().
2016-08-23 14:53:01 +03:00
Nick Mathewson
8f2f06c9b3
Merge branch 'maint-0.2.8'
2016-08-19 19:35:39 -04:00
Nick Mathewson
49843c980a
Avoid confusing GCC 4.2.1 by saying "int foo()... inline int foo() {...}"
...
Fixes bug 19903; bugfix on 0.2.8.1-alpha.
2016-08-19 19:34:39 -04:00
Nick Mathewson
7f145b54af
Merge remote-tracking branch 'public/Fix_19450'
2016-08-12 16:11:28 -04:00
cypherpunks
8d67c079b4
Fix integer overflows in the conversion tables
2016-08-12 14:18:01 -04:00
Nick Mathewson
e788c577f1
Only use evutil_secure_rng_add_bytes() when present.
...
OpenBSD removes this function, and now that Tor requires Libevent 2,
we should also support the OpenBSD Libevent 2.
Fixes bug 19904; bugfix on 0.2.5.4-alpha.
2016-08-11 20:37:18 -04:00
Nick Mathewson
60997a00e8
Fix a bug in the old-gcc version of ENABLE_GCC_WARNING
...
Fixes bug 19901; bugfix on 0.2.9.1-alpha.
2016-08-11 19:58:13 -04:00
Nick Mathewson
4d4ccc505b
Search for remaining references to 'bufferevent'.
...
Remove or adjust as appropriate.
2016-08-02 13:59:47 -04:00
Nick Mathewson
88a7a02728
Bufferevent removal: remove more bufferevent-only options
...
(All this IOCP stuff was bufferevent-only.)
2016-08-02 13:33:08 -04:00
Nick Mathewson
8fd6b0fc46
Remove USE_BUFFEREVENTS code outside src/or
2016-08-02 13:22:06 -04:00
Andrea Shepard
1995328a3d
Keep make check-spaces happy
2016-07-29 05:05:12 +00:00
Nick Mathewson
dffc6910b1
Three more -Wshadow fixes.
2016-07-28 11:24:03 -04:00
Nick Mathewson
9fe6fea1cc
Fix a huge pile of -Wshadow warnings.
...
These appeared on some of the Jenkins platforms. Apparently some
GCCs care when you shadow globals, and some don't.
2016-07-28 10:22:10 -04:00
Nick Mathewson
a8676b1ede
Merge branch 'bug18902_squashed'
2016-07-28 06:59:03 -04:00
Nick Mathewson
4757303873
Fix all -Wshadow warnings on Linux
...
This is a partial fix for 18902.
2016-07-28 06:58:44 -04:00
Nick Mathewson
d97fca16d0
Fix an integer overflow related to monotonic time on windows.
...
To maintain precision, to get nanoseconds, we were multiplying our
tick count by a billion, then dividing by ticks-per-second. But
that apparently isn't such a great idea, since ticks-per-second is
sometimes a billion on its own, so our intermediate result was
giving us attoseconds.
When you're counting in attoseconds, you can only fit about 9
seconds into an int64_t, which is not so great for our purposes.
Instead, we now simplify the 1000000000/1000000000 fraction before
we start messing with nanoseconds. This has potential to mess us
up if some future MS version declares that performance counters will
use 1,000,000,007 units per second, but let's burn that bridge when
we come to it.
2016-07-26 11:23:58 -04:00
Nick Mathewson
09c25697d7
Add a function to simplify a fraction.
...
Apparently remembering euclid's algorithm does pay off sooner or later.
2016-07-26 11:23:34 -04:00
Nick Mathewson
90ca446048
Remove windows debugging prints: it was an integer overflow hitting ftrapv
2016-07-26 11:07:53 -04:00
Nick Mathewson
019b7ddb9f
fix identifier mistake :(
2016-07-26 10:44:51 -04:00
Nick Mathewson
160d2c6aab
Redux^3: Temporarily add windows verbosity to track down jenkins failures
2016-07-26 10:36:44 -04:00
Nick Mathewson
0cef69713c
Redux^2: Temporarily add windows verbosity to track down jenkins failures
2016-07-26 10:04:40 -04:00
Nick Mathewson
fb7f90c181
Tweaks on 19435 fix:
...
* Raise limit: 16k isn't all that high.
* Don't log when limit exceded; log later on.
* Say "over" when we log more than we say we log.
* Add target version to changes file
2016-07-26 09:59:48 -04:00
Ivan Markin
77459b97aa
Fix integer overflow in the rate-limiter ( #19435 ).
2016-07-26 09:49:40 -04:00
Nick Mathewson
264fb7eb82
debugging: print ticks-per-second on windows. is it 0?
2016-07-26 09:44:41 -04:00
Nick Mathewson
1033713c9c
Temporarily add some windows verbosity to track down unit test failure on jenkins.
2016-07-26 08:56:55 -04:00
Nick Mathewson
3f9c036821
Try a little harder to work around mingw clock_gettime weirdness
2016-07-26 08:22:37 -04:00
Peter Palfrader
518c8fe0ec
Also ship compat_time.h in release tarballs. Fixes bug #19746
2016-07-25 09:07:29 +02:00
Nick Mathewson
53f9f71985
ug no, the RIGHT fix.
2016-07-21 15:29:56 +02:00
Nick Mathewson
9c210d0e81
Avoid infinite stack explosion in windows monotime.
...
[init calls get calls init calls get calls init.... ]
2016-07-21 15:26:05 +02:00
Nick Mathewson
1d0775684d
Once more, 32-bit fixes on monotime mocking
2016-07-21 14:32:15 +02:00
Nick Mathewson
9c87869dde
Merge branch 'maint-0.2.8'
2016-07-21 14:15:19 +02:00
Nick Mathewson
f1973e70a4
Coverity hates it when we do "E1 ? E2 : E2".
...
It says, 'Incorrect expression (IDENTICAL_BRANCHES)'
Fix for CID 1364127. Not in any released Tor.
2016-07-21 14:14:33 +02:00
Nick Mathewson
22314f9050
loony mingwcross bug: insist we dont have clock_gettime.
2016-07-21 14:09:00 +02:00
Nick Mathewson
852cff043b
fix monotime test mocking on 32-bit systems
2016-07-21 14:05:29 +02:00
Nick Mathewson
2d26b1a549
Actually make monotonic time functions mockable.
...
This is different from making the functions mockable, since
monotime_t is opaque and so providing mocks for the functions is
really hard.
2016-07-21 07:02:33 -04:00
Nick Mathewson
72a1f0180d
Revert "Make the monotonic{_coarse,}_get() functions mockable."
...
This reverts commit 2999f0b33f
.
2016-07-21 10:30:21 +02:00