diff options
author | MarcoFalke <falke.marco@gmail.com> | 2021-11-11 14:26:41 +0100 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2021-11-11 14:26:46 +0100 |
commit | bc03823e26d1bf0cca679ce9330f9c6a58b33faf (patch) | |
tree | c8a375bd5d68e8b8204ace8112268576803e4392 /doc/fuzzing.md | |
parent | d217ee25a3979b32c320052d079bac342c7ee976 (diff) | |
parent | 6cac99ac0713b41df45dd5a0c4283d5ad25d2917 (diff) |
Merge bitcoin/bitcoin#23482: doc: Add a brief overview of fuzzing/Bitcoin Core fuzzing
6cac99ac0713b41df45dd5a0c4283d5ad25d2917 Add a brief overview of fuzzing/Bitcoin Core fuzzing (Alex Groce)
Pull request description:
- Google's repo
- Our report
- John's advice on fuzz-friendly development
ACKs for top commit:
MarcoFalke:
ACK 6cac99ac0713b41df45dd5a0c4283d5ad25d2917
shaavan:
ACK 6cac99ac0713b41df45dd5a0c4283d5ad25d2917
Tree-SHA512: 45d1f2f49d068ddd40c3e60cb4a3ede079276e0e09328eec04e391637e9225e195dd7ee1573aa962a2cae93a7e432f9e1d5d0b97660b879ab37ce453cc43c275
Diffstat (limited to 'doc/fuzzing.md')
-rw-r--r-- | doc/fuzzing.md | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/doc/fuzzing.md b/doc/fuzzing.md index 0880f9f581..73d04837f1 100644 --- a/doc/fuzzing.md +++ b/doc/fuzzing.md @@ -19,6 +19,10 @@ $ FUZZ=process_message src/test/fuzz/fuzz There is also a runner script to execute all fuzz targets. Refer to `./test/fuzz/test_runner.py --help` for more details. +## Overview of Bitcoin Core fuzzing + +[Google](https://github.com/google/fuzzing/) has a good overview of fuzzing in general, with contributions from key architects of some of the most-used fuzzers. [This paper](https://agroce.github.io/bitcoin_report.pdf) includes an external overview of the status of Bitcoin Core fuzzing, as of summer 2021. [John Regehr](https://blog.regehr.org/archives/1687) provides good advice on writing code that assists fuzzers in finding bugs, which is useful for developers to keep in mind. + ## Fuzzing harnesses and output [`process_message`](https://github.com/bitcoin/bitcoin/blob/master/src/test/fuzz/process_message.cpp) is a fuzzing harness for the [`ProcessMessage(...)` function (`net_processing`)](https://github.com/bitcoin/bitcoin/blob/master/src/net_processing.cpp). The available fuzzing harnesses are found in [`src/test/fuzz/`](https://github.com/bitcoin/bitcoin/tree/master/src/test/fuzz). |