clamav/fuzz
Micah Snyder c025afd683 Rename "shared" library to "common"
The named "shared" is confusing, especially now that these features are
built as a static library instead of being directly compiled into the
various applications.
2021-04-20 17:31:19 -07:00
..
clamav_dbload_fuzzer.cpp Minor fuzz testbench improvements 2021-03-20 09:20:52 -04:00
clamav_scanfile_fuzzer.cpp Minor fuzz testbench improvements 2021-03-20 09:20:52 -04:00
clamav_scanmap_fuzzer.cpp Minor fuzz testbench improvements 2021-03-20 09:20:52 -04:00
CMakeLists.txt CMake: Add fuzz support. 2021-02-25 11:41:26 -08:00
Makefile.am Rename "shared" library to "common" 2021-04-20 17:31:19 -07:00
README.md Added oss-fuzz integration. 2019-10-02 16:08:17 -04:00
run_fuzzer_tests.py Update copyright dates for 2021 2021-03-19 15:12:26 -07:00
standalone_fuzz_target_runner.cpp Add newlines at end of sources to satisfy strict warnings (C/C++ standard requires them) 2020-08-21 04:56:33 +02:00

OSS-Fuzz

ClamAV has chosen to integrate with oss-fuzz.

What this means is that this repository includes:

  • Fuzz targets:

    • A function to which we apply fuzzing.
    • For ClamAV, clamav_scanfile_fuzzer.cc may be compiled with specific macros defined to produce multiple fuzz targets.
    • Additional fuzz targets may be added to fuzz other ClamAV inputs.
  • Seed corpora:

    • A set of minimal test inputs that generate maximal code coverage.
    • Each ClamAV fuzz target has a seed corpus located under: fuzz/corpus/
  • Fuzzing dictionaries:

    • A simple dictionary of tokens used by the input language. This can have a dramatic positive effect on fuzzing efficiency. For example, when fuzzing an XML parser, a dictionary of XML tokens will help.
    • Some ClamAV fuzz targets have a dictionary located under: fuzz/dictionaries/.dict

For more information on how this is set up, see: ideal OSS-Fuzz integration