clamav/fuzz
Micah Snyder 1db4787f8a Remove autotools generated files, add autogen.sh
Removed all autotools generates files. Autotools (autoconf, automake,
libtool, pkg-config, m4) will be required from now on for builds from
git clones.

Added autogen.sh to be run before ./configure.

Significant update to main .gitignore file.

Removed extraneous .gitignore files. A Git repository only needs one
.gitignore file.
2020-07-17 15:40:32 -07:00
..
clamav_dbload_fuzzer.cpp Update copyright dates for 2020 2020-01-03 15:44:07 -05:00
clamav_scanfile_fuzzer.cpp Update copyright dates for 2020 2020-01-03 15:44:07 -05:00
clamav_scanmap_fuzzer.cpp Update copyright dates for 2020 2020-01-03 15:44:07 -05:00
Makefile.am Autotools compatibility fixes 2020-07-17 15:40:32 -07:00
README.md Added oss-fuzz integration. 2019-10-02 16:08:17 -04:00
run_fuzzer_tests.py Update copyright dates for 2020 2020-01-03 15:44:07 -05:00
standalone_fuzz_target_runner.cpp Added oss-fuzz integration. 2019-10-02 16:08:17 -04: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