pelikan
pelikan copied to clipboard
Added first fuzzer with oss-fuzz build script
This PR adds a fuzzer and a build script to integrate Pelikan with oss-fuzz for continuous fuzzing.
The fuzzer is implemented by way of LibFuzzer. Fuzzing is a way of testing programs whereby pseudo-random data is passed to a target function with the goal of finding bugs and vulnerabilities. Continuous fuzzing contributes to this in several ways, some of which are:
- Some harder-to-find bugs take longer to find, and there have been examples of bugs having been found after several CPU years of continuous fuzzing.
- It ensures that the fuzzers are actually run occassionally. Often effort is put into writing the fuzzers, and afterwards they are rarely run if at all.
By setting up continuous fuzzing through oss-fuzz, maintainers are notified if and when bugs are found. Notifications include detailed reports with stacktraces and test cases. oss-fuzz is a free service for open source projects that is offered with an implied expectation that bugs are fixed, so that the resources spent on fuzzing Pelikan are put to good use.
I have the build scripts for the oss-fuzz side as well and will be happy to complete the integration.
The location of the fuzzer and the oss-fuzz build script in the test/fuzz
dir is a suggestion.