# Process this file with automake to produce Makefile.in # By default, use our own standalone_fuzz_target_runner. # This runner does no fuzzing, but simply executes the inputs # provided via parameters. # Run e.g. "make all LIB_FUZZING_ENGINE=/path/to/libFuzzer.a" # to link the fuzzer(s) against a real fuzzing engine. # # OSS-Fuzz will define its own value for LIB_FUZZING_ENGINE. if ENABLE_FUZZ LIB_FUZZING_ENGINE ?= standalone_fuzz_target_runner.o AM_CPPFLAGS = \ -I$(top_srcdir) -I$(top_srcdir)/shared -I$(top_srcdir)/libclamav \ -std=c++11 -O2 -fno-omit-frame-pointer -g \ -fsanitize=address \ -fsanitize-coverage=edge,trace-pc-guard,indirect-calls,trace-cmp,trace-div,trace-gep AM_LDFLAGS = \ $(top_builddir)/libclamav/libclamav.la $(top_builddir)/libclamav/libclammspack.la \ -Wc,-fsanitize=address -Wl,-U,_LLVMFuzzerCustomMutator -Wl,-U,_LLVMFuzzerInitialize \ "-no-undefined" check_PROGRAMS = \ clamav_scanmap_fuzzer \ clamav_scanfile_fuzzer \ clamav_scanfile_fuzzer_ARCHIVE \ clamav_scanfile_fuzzer_MAIL \ clamav_scanfile_fuzzer_OLE2 \ clamav_scanfile_fuzzer_PDF \ clamav_scanfile_fuzzer_HTML \ clamav_scanfile_fuzzer_PE \ clamav_scanfile_fuzzer_ELF \ clamav_scanfile_fuzzer_SWF \ clamav_scanfile_fuzzer_XMLDOCS \ clamav_scanfile_fuzzer_HWP3 \ clamav_dbload_fuzzer_CDB \ clamav_dbload_fuzzer_CFG \ clamav_dbload_fuzzer_CRB \ clamav_dbload_fuzzer_FP \ clamav_dbload_fuzzer_FTM \ clamav_dbload_fuzzer_HDB \ clamav_dbload_fuzzer_HSB \ clamav_dbload_fuzzer_IDB \ clamav_dbload_fuzzer_IGN \ clamav_dbload_fuzzer_IGN2 \ clamav_dbload_fuzzer_LDB \ clamav_dbload_fuzzer_MDB \ clamav_dbload_fuzzer_MSB \ clamav_dbload_fuzzer_NDB \ clamav_dbload_fuzzer_PDB \ clamav_dbload_fuzzer_WDB \ clamav_dbload_fuzzer_YARA clamav_scanmap_fuzzer_SOURCES = clamav_scanmap_fuzzer.cpp clamav_scanmap_fuzzer_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_ARCHIVE_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_ARCHIVE_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_ARCHIVE_CPPFLAGS = -DCLAMAV_FUZZ_ARCHIVE $(AM_CPPFLAGS) clamav_scanfile_fuzzer_MAIL_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_MAIL_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_MAIL_CPPFLAGS = -DCLAMAV_FUZZ_MAIL $(AM_CPPFLAGS) clamav_scanfile_fuzzer_OLE2_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_OLE2_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_OLE2_CPPFLAGS = -DCLAMAV_FUZZ_OLE2 $(AM_CPPFLAGS) clamav_scanfile_fuzzer_PDF_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_PDF_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_PDF_CPPFLAGS = -DCLAMAV_FUZZ_PDF $(AM_CPPFLAGS) clamav_scanfile_fuzzer_HTML_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_HTML_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_HTML_CPPFLAGS = -DCLAMAV_FUZZ_HTML $(AM_CPPFLAGS) clamav_scanfile_fuzzer_PE_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_PE_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_PE_CPPFLAGS = -DCLAMAV_FUZZ_PE $(AM_CPPFLAGS) clamav_scanfile_fuzzer_ELF_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_ELF_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_ELF_CPPFLAGS = -DCLAMAV_FUZZ_ELF $(AM_CPPFLAGS) clamav_scanfile_fuzzer_SWF_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_SWF_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_SWF_CPPFLAGS = -DCLAMAV_FUZZ_SWF $(AM_CPPFLAGS) clamav_scanfile_fuzzer_XMLDOCS_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_XMLDOCS_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_XMLDOCS_CPPFLAGS = -DCLAMAV_FUZZ_XMLDOCS $(AM_CPPFLAGS) clamav_scanfile_fuzzer_HWP3_SOURCES = clamav_scanfile_fuzzer.cpp clamav_scanfile_fuzzer_HWP3_LDADD = $(LIB_FUZZING_ENGINE) clamav_scanfile_fuzzer_HWP3_CPPFLAGS = -DCLAMAV_FUZZ_HWP3 $(AM_CPPFLAGS) clamav_dbload_fuzzer_CDB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_CDB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_CDB_CPPFLAGS = -DCLAMAV_FUZZ_CDB $(AM_CPPFLAGS) clamav_dbload_fuzzer_CFG_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_CFG_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_CFG_CPPFLAGS = -DCLAMAV_FUZZ_CFG $(AM_CPPFLAGS) clamav_dbload_fuzzer_CRB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_CRB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_CRB_CPPFLAGS = -DCLAMAV_FUZZ_CRB $(AM_CPPFLAGS) clamav_dbload_fuzzer_FP_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_FP_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_FP_CPPFLAGS = -DCLAMAV_FUZZ_FP $(AM_CPPFLAGS) clamav_dbload_fuzzer_FTM_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_FTM_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_FTM_CPPFLAGS = -DCLAMAV_FUZZ_FTM $(AM_CPPFLAGS) clamav_dbload_fuzzer_HDB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_HDB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_HDB_CPPFLAGS = -DCLAMAV_FUZZ_HDB $(AM_CPPFLAGS) clamav_dbload_fuzzer_HSB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_HSB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_HSB_CPPFLAGS = -DCLAMAV_FUZZ_HSB $(AM_CPPFLAGS) clamav_dbload_fuzzer_IDB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_IDB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_IDB_CPPFLAGS = -DCLAMAV_FUZZ_IDB $(AM_CPPFLAGS) clamav_dbload_fuzzer_IGN_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_IGN_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_IGN_CPPFLAGS = -DCLAMAV_FUZZ_IGN $(AM_CPPFLAGS) clamav_dbload_fuzzer_IGN2_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_IGN2_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_IGN2_CPPFLAGS = -DCLAMAV_FUZZ_IGN2 $(AM_CPPFLAGS) clamav_dbload_fuzzer_LDB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_LDB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_LDB_CPPFLAGS = -DCLAMAV_FUZZ_LDB $(AM_CPPFLAGS) clamav_dbload_fuzzer_MDB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_MDB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_MDB_CPPFLAGS = -DCLAMAV_FUZZ_MDB $(AM_CPPFLAGS) clamav_dbload_fuzzer_MSB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_MSB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_MSB_CPPFLAGS = -DCLAMAV_FUZZ_MSB $(AM_CPPFLAGS) clamav_dbload_fuzzer_NDB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_NDB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_NDB_CPPFLAGS = -DCLAMAV_FUZZ_NDB $(AM_CPPFLAGS) clamav_dbload_fuzzer_PDB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_PDB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_PDB_CPPFLAGS = -DCLAMAV_FUZZ_PDB $(AM_CPPFLAGS) clamav_dbload_fuzzer_WDB_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_WDB_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_WDB_CPPFLAGS = -DCLAMAV_FUZZ_WDB $(AM_CPPFLAGS) clamav_dbload_fuzzer_YARA_SOURCES = clamav_dbload_fuzzer.cpp clamav_dbload_fuzzer_YARA_LDADD = $(LIB_FUZZING_ENGINE) clamav_dbload_fuzzer_YARA_CPPFLAGS = -DCLAMAV_FUZZ_YARA $(AM_CPPFLAGS) check: $(LIB_FUZZING_ENGINE) for type in ARCHIVE MAIL OLE2 PDF HTML PE ELF SWF XMLDOCS HWP3 ; do \ builddir="$(builddir)" $(srcdir)/run_fuzzer_tests.py -f clamav_scanmap_fuzzer -c $(top_srcdir)/../clamav-fuzz-corpus/scantype/$$type ; \ done for type in ARCHIVE MAIL OLE2 PDF HTML PE ELF SWF XMLDOCS HWP3 ; do \ builddir="$(builddir)" $(srcdir)/run_fuzzer_tests.py -f clamav_scanfile_fuzzer_$$type -c $(top_srcdir)/../clamav-fuzz-corpus/scantype/$$type ; \ done for type in CDB CFG CRB FP FTM HDB HSB IDB IGN IGN2 LDB MDB MSB NDB PDB WDB YARA ; do \ builddir="$(builddir)" $(srcdir)/run_fuzzer_tests.py -f clamav_dbload_fuzzer_$$type -c $(top_srcdir)/../clamav-fuzz-corpus/database/$$type ; \ done else check: @echo "Building fuzz targets is not enabled" @echo "Use: ./configure --enable-fuzz --with-libjson=no --with-pcre=no --enable-static=yes --enable-shared=no --disable-llvm" @exit 1 endif