Nick Mathewson
653c6d129e
Make consensus diff sha3 operations mockable.
...
(We'll want this for fuzzing)
2017-03-16 14:40:33 -04:00
Nick Mathewson
6a36e5ff3b
String-based API for consensus diffs.
...
Also, add very strict split/join functions, and totally forbid
nonempty files that end with somethig besides a newline. This
change is necessary to ensure that diff/apply are actually reliable
inverse operations.
2017-03-16 14:39:54 -04:00
Nick Mathewson
eff9fbd17d
Fix an abstraction violation.
...
Don't alias the insides of smartlist_t; that way lies madness.
2017-03-16 14:38:29 -04:00
Nick Mathewson
69b3e11e59
Use "const" in consdiff.[ch]
2017-03-16 14:38:29 -04:00
Nick Mathewson
3647751c2a
prop140: Use sha3-256, not sha2-256
...
This is a protocol update from recent prop140 changes.
Also, per #21673 , we need to check the entire document, including
signatures.
2017-03-16 14:38:29 -04:00
Nick Mathewson
d6594bfa8c
Add a couple more cases to reach 100% coverage.
2017-03-16 14:38:29 -04:00
Nick Mathewson
c86e77ac20
Cover two more failing cases with unit tests
2017-03-16 14:38:29 -04:00
Nick Mathewson
e1418c09fc
Fix an unreachable memory leak.
...
Also add a missing newline.
2017-03-16 14:38:29 -04:00
Nick Mathewson
f193b666cd
Remove digest[12]_hex
2017-03-16 14:38:29 -04:00
Nick Mathewson
c6046f4db8
Tweak&test log messages on apply_diff
2017-03-16 14:38:29 -04:00
Nick Mathewson
5766eed38f
Fixes when applying diffs: Allow 2-line diffs, fix bogus free
...
The 2-line diff changs is needed to make the unit tests actually
test the cases that they thought they were testing.
The bogus free was found while testing those cases
2017-03-16 14:38:29 -04:00
Nick Mathewson
ab1fd85c99
Mark some warnings as bugs, and as (hopefully) unreachable.
2017-03-16 14:38:28 -04:00
Nick Mathewson
bb536a2e73
Check for expected warnings in apply_ed_diff
2017-03-16 14:38:28 -04:00
Nick Mathewson
06017f35e8
Fix some logging on failed apply_ed_diff
2017-03-16 14:38:28 -04:00
Nick Mathewson
97620cf18f
No need to end a log message with newline.
2017-03-16 14:38:28 -04:00
Nick Mathewson
05901f2c6d
test operator cleanup
2017-03-16 14:38:28 -04:00
Nick Mathewson
687df259c6
Enforce correct log messages on diff generation failure tests
2017-03-16 14:38:28 -04:00
Nick Mathewson
ccb789fe34
Test two more base64cmp cases.
2017-03-16 14:38:28 -04:00
Nick Mathewson
360d043ac7
Use "STATIC" to export consdiff fns for testing
...
Previously test_consdiff.c just did #include "consdiff.c", which is
not great style, and messes up coverage testing.
2017-03-16 14:38:28 -04:00
Daniel Martí
590ffdb2c9
Consensus diff backend from Daniel Martí GSOC project.
...
(This commit was extracted by nickm based on the final outcome of
the project, taking only the changes in the files touched by this
commit from the consdiff_rebased branch. The directory-system
changes are going to get worked on separately.)
2017-03-16 14:38:28 -04:00
Nick Mathewson
7505f452c8
Run the copyright update script.
2017-03-15 16:13:17 -04:00
Nick Mathewson
c6b97b3da0
Update updateCopyright to 2017
2017-03-15 16:11:50 -04:00
Nick Mathewson
c64adaaf90
Merge branch 'bug21540_029_v2'
2017-03-15 12:17:15 -04:00
Nick Mathewson
44514058b9
Correctly handle fd-drain errors on windows workqueues
...
Windows doesn't let you check the socket error for a socket with
WSAGetLastError() and getsockopt(SO_ERROR). But
getsockopt(SO_ERROR) clears the error on the socket, so you can't
call it more than once per error.
When we introduced recv_ni to help drain alert sockets, back in
0.2.6.3-alpha, we had the failure path for recv_ni call getsockopt()
twice, though: once to check for EINTR and one to check for EAGAIN.
Of course, we never got the eagain, so we treated it as an error,
and warned about: "No error".
The fix here is to have these functions return -errno on failure.
Fixes bug 21540; bugfix on 0.2.6.3-alpha.
2017-03-15 12:16:17 -04:00
Nick Mathewson
3b2d6da453
Merge branch 'maint-0.3.0'
2017-03-15 11:09:22 -04:00
Nick Mathewson
567a56ae2e
Merge branch 'bug20059_024_v2' into maint-0.3.0
2017-03-15 11:07:38 -04:00
Nick Mathewson
ec5fe41209
Avoid a double-mark bug when makring a pending circuit as "too old"
...
Fixes bug 20059; bugfix on 0.1.0.1-rc.
2017-03-15 11:05:37 -04:00
Nick Mathewson
6004dd2162
Merge branch 'deprecate_getinfo_network_status'
2017-03-15 11:01:26 -04:00
Nick Mathewson
a783c5cbae
Merge remote-tracking branch 'public/feature21496'
2017-03-15 10:59:30 -04:00
Nick Mathewson
31c9bdadbe
Merge branch 'keccak-load-faster'
2017-03-14 19:47:38 -04:00
Nick Mathewson
8083e7c80b
Note that bandwidth-limit options only affect TCP data.
2017-03-14 19:46:57 -04:00
Nick Mathewson
9014dc111a
Improve keccak-tiny performance by 15% on LE intel
...
The 64-bit load and store code was generating pretty bad output with
my compiler, so I extracted the code from csiphash and used that instead.
Close ticket 21737
2017-03-14 14:20:15 -04:00
Nick Mathewson
f38f9b33d0
Merge branch 'feature21622_only'
2017-03-14 12:07:30 -04:00
teor
f1dd64bb00
Changes file for feature 21622
2017-03-14 11:54:20 -04:00
teor
c34411d9cb
Log info about intro point limits when they are reached and reset
...
Depends on 21594, part of 21622.
2017-03-14 11:54:08 -04:00
teor
c99d0e742a
Log more info when a service descriptor has the wrong number of intro points
...
Depends on 21598, part of 21622.
2017-03-14 11:53:34 -04:00
teor
d0927b6646
Create function to log service introduction point creation limits
...
Depends on 21594, part of 21622.
(Resolved merge conflict in static function declarations.
2017-03-14 11:53:34 -04:00
Nick Mathewson
c000c7d118
Create logfiles in mode 0640
...
Patch from toralf; closes 21729.
2017-03-14 11:36:53 -04:00
Nick Mathewson
99ec44de45
Merge remote-tracking branch 'chelseakomlo/documentation_integ_tests'
2017-03-14 11:32:53 -04:00
Nick Mathewson
5b5ec52cae
Merge branch 'maint-0.3.0'
2017-03-14 11:26:07 -04:00
Nick Mathewson
92813941b5
#21720 : Update "directory server options" preamble in manpage
2017-03-14 11:25:54 -04:00
Nick Mathewson
236e1f31d9
Fix some compilation warnings in {test_,}hs_descriptor.c
...
Nothing big: just some const char[]s that should have been static,
and some integer truncation warnings.
Warnings not in any released Tor.
2017-03-13 22:36:47 -04:00
Nick Mathewson
dc37ea8b98
Add a null statement to prevent some SMARTLIST_FOREACH() bugs.
...
So we require that SMARTLIST_FOREACH_END() have the name of the loop
variable in it. But right now the only enforcement for that is to
clear the variable at the end of the loop, which is really not
sufficient: I spent 45 minutes earlier today debugging an issue
where I had said:
SMARTLIST_FOREACH_BEGIN(spool, spooled_resource_t *, spooled) {
...
} SMARTLIST_FOREACH_END(spool);
This patch makes it so that ONLY loop variables can be used, by
referring to the _sl_idx variable.
2017-03-13 16:43:30 -04:00
Nick Mathewson
d9cd4b7072
Merge branch 'maint-0.3.0'
2017-03-13 16:22:54 -04:00
Nick Mathewson
e2cd600da6
Merge remote-tracking branch 'public/bug21682_030' into maint-0.3.0
2017-03-13 16:22:40 -04:00
Nick Mathewson
43dd9bf0fc
Merge remote-tracking branch 'asn/bug21334_v3'
2017-03-13 16:18:55 -04:00
George Kadianakis
61f318b1b0
prop224: Rename padding size def to something less confusing.
...
People felt it could refer to the descriptor header section instead of
the plaintext of the superencrypted section.
2017-03-13 15:58:28 +02:00
George Kadianakis
e6b03151fb
prop224: Add unittests for decode_superencrypted().
2017-03-13 15:55:21 +02:00
George Kadianakis
163596d9c2
prop224: Move some utility crypto funcs to the top of the file.
2017-03-13 15:55:21 +02:00
George Kadianakis
1f421d8d47
prop224: Fix the HS descriptor unittests.
...
- HS descriptors are now bigger than 10kb.
- encrypted_data_length_is_valid() is not that strict now.
2017-03-13 15:55:21 +02:00