clamav/fuzz
John Humlick f0289f0b90
libclamav: Fix compiler error on some Apple systems.
clamav_dbload_fuzzer.cpp and clamav_scanfile_fuzzer.cpp use __pid_t, which some
Apple systems do not define, and this causes a compilation error. This change
defines __pid_t as pid_t, which does exist on those systems and allows clamav
to build.
2025-05-30 12:41:45 -07:00
..
clamav_dbload_fuzzer.cpp libclamav: Fix compiler error on some Apple systems. 2025-05-30 12:41:45 -07:00
clamav_scanfile_fuzzer.cpp libclamav: Fix compiler error on some Apple systems. 2025-05-30 12:41:45 -07:00
clamav_scanmap_fuzzer.cpp Bump copyright dates for 2025 2025-02-14 10:24:30 -05:00
CMakeLists.txt Bump copyright dates for 2025 2025-02-14 10:24:30 -05:00
README.md Added oss-fuzz integration. 2019-10-02 16:08:17 -04:00
run_fuzzer_tests.py Bump copyright dates for 2025 2025-02-14 10:24:30 -05:00
standalone_fuzz_target_runner.cpp Fix typos (no functional changes) 2023-11-26 18:01:19 -05: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