fuzz: Add fuzzing harness for TorController#19288
Conversation
a60eecc to
1c96a84
Compare
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
1c96a84 to
38c5e21
Compare
|
Concept ACK |
Crypt-iQ
left a comment
There was a problem hiding this comment.
48 hour coverage with libfuzzer here: https://crypt-iq.github.io/torcontrol_cov/src/torcontrol.cpp.gcov.html
Currently two functions are coverage lacking from the above output:
authchallenge_cbprotocolinfo_cb
authchallenge_cb coverage is a bit tricky to get coverage for because it has to pass the HMAC check. protocolinfo_cb just needs better seeds and it should be able to hit every part but this one:
Lines 643 to 652 in 9d4b3d8
38c5e21 to
2c5f1b2
Compare
|
Concept ACK |
c9d1559 to
9b82584
Compare
|
Runs without complaint on Ubuntu 18: Will build on macOS and report back. |
|
Builds on macOS: Ran with Ubuntu 18 again: |
|
ACK 9b825840daf72f20444c2ec13c3aa681df8b594f |
e4fcaae to
3f3982c
Compare
3f3982c to
bfdc60b
Compare
maflcko
left a comment
There was a problem hiding this comment.
haven't reviewed, but it would probably be good to use the new style here
bfdc60b to
730e3de
Compare
|
Updated to use the excellent Should be ready for final review :) |
99e4f1e to
9b984fb
Compare
|
Compared to other fuzzing PRs this PR is relatively cumbersome to keep up to date over time due to the code move from Current status: Concept ACK ACKs
|
|
The first commit which is move-only is best viewed dimmed 🦓 style: |
|
This PR has one stale ACK and three Concept ACKs, and I believe all feedback has been addressed. Ready for merge after re-review? |
|
Sorry, forgot about this a bit. I'll have a look. Looks like this has a silent merge conflict on current master: |
9b984fb to
936cad9
Compare
Oh, thanks for noticing! Now addressed :) |
936cad9 to
10d4477
Compare
|
I want to say this one more time before merging: I dislike moving internal implementation details to the header for testing purposes. It kind of violates encapsulation and makes the headers larger and less usefully self-documenting. That said, I do not see any other solution in the immediate context here. A longer-term direction would be to have test-specific headers that expose internal functionality for unit testing[, benching, fuzzing] but are never included in production code. ACK 10d4477 |
Add fuzzing harness for
TorController.See
doc/fuzzing.mdfor information on how to fuzz Bitcoin Core. Don't forget to contribute any coverage increasing inputs you find to the Bitcoin Core fuzzing corpus repo.Happy fuzzing :)