-
Notifications
You must be signed in to change notification settings - Fork 95
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rewrite the bit-rotted fuzzing code. Summary of changes: 1. Fuzzing is now enabled similar to sanitizers, with -DENABLE_FUZZER=ON parameter to cmake 2. When fuzzing is enabled, the output binary is `subzero_fuzz` rather than `subzero`. 3. When fuzzing is enabled, all log output is suppressed, per recommendation from libfuzzer docs. 4. When fuzzing is enabled, debug symbols are included, per recommendation from libfuzzer docs. 5. When fuzzing is enabled, -O1 optimization level is used, per recommendation from libfuzzer docs. 6. When fuzzing is enabled, QR signature check failures are ignored, so we can fuzz the post-signature-check code paths. 7. When fuzzing is enabled, ignore AES-GCM decryption errors, so we can fuzz the post-decryption code paths. 8. Added new options --generate-fuzzing-corpus and --fuzzing-corpus-output-dir to the GUI. These can be used to generate an initial fuzzing corpus (together with --signtx-test and --generate-wallet-files-test). 9. Fixed a bug with --generate-wallet-files-test - it needs to initialize screens in order to work. 10. Added a new fuzz testing section to documentation page. Potential future work: - use google's libprotobuf-mutator for structure-aware fuzzing
- Loading branch information
Showing
15 changed files
with
372 additions
and
112 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,3 +5,4 @@ | |
cmake-build-* | ||
build/** | ||
venv/** | ||
fuzzing_corpus |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.