diff options
author | Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> | 2023-09-10 18:44:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-10 18:44:50 +0200 |
commit | ef6085370f75ae7c6c53bfbd0e36c588483a5047 (patch) | |
tree | 06e494b8a197fa1ab944a92cec561f600f6e6f1f /fuzz/Makefile.am | |
parent | 2c5e22123e3de10bc1115ef5e4103ef591757736 (diff) |
fuzz: add fuzzers to test bitmap64 and domain_classify data structures (#2082)
Diffstat (limited to 'fuzz/Makefile.am')
-rw-r--r-- | fuzz/Makefile.am | 64 |
1 files changed, 42 insertions, 22 deletions
diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am index 0235e718c..9764f58ac 100644 --- a/fuzz/Makefile.am +++ b/fuzz/Makefile.am @@ -2,7 +2,7 @@ bin_PROGRAMS = fuzz_process_packet fuzz_ndpi_reader fuzz_ndpi_reader_alloc_fail #Alghoritms bin_PROGRAMS += fuzz_alg_bins fuzz_alg_hll fuzz_alg_hw_rsi_outliers_da fuzz_alg_jitter fuzz_alg_ses_des fuzz_alg_crc32_md5 fuzz_alg_bytestream #Data structures -bin_PROGRAMS += fuzz_ds_patricia fuzz_ds_ahocorasick fuzz_ds_libcache fuzz_ds_tree fuzz_ds_ptree fuzz_ds_hash fuzz_ds_cmsketch +bin_PROGRAMS += fuzz_ds_patricia fuzz_ds_ahocorasick fuzz_ds_libcache fuzz_ds_tree fuzz_ds_ptree fuzz_ds_hash fuzz_ds_cmsketch fuzz_ds_bitmap64 fuzz_ds_domain_classify #Third party bin_PROGRAMS += fuzz_libinjection #Internal crypto @@ -328,6 +328,36 @@ fuzz_ds_cmsketch_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \ $(fuzz_ds_cmsketch_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@ +fuzz_ds_bitmap64_SOURCES = fuzz_ds_bitmap64.cpp fuzz_common_code.c +fuzz_ds_bitmap64_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) +fuzz_ds_bitmap64_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) +fuzz_ds_bitmap64_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS) +fuzz_ds_bitmap64_LDFLAGS = $(LIBS) +if HAS_FUZZLDFLAGS +fuzz_ds_bitmap64_CXXFLAGS += $(LIB_FUZZING_ENGINE) +fuzz_ds_bitmap64_CFLAGS += $(LIB_FUZZING_ENGINE) +fuzz_ds_bitmap64_LDFLAGS += $(LIB_FUZZING_ENGINE) +endif +# force usage of CXX for linker +fuzz_ds_bitmap64_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(fuzz_ds_bitmap64_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@ + +fuzz_ds_domain_classify_SOURCES = fuzz_ds_domain_classify.cpp fuzz_common_code.c +fuzz_ds_domain_classify_CXXFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) +fuzz_ds_domain_classify_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) +fuzz_ds_domain_classify_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS) +fuzz_ds_domain_classify_LDFLAGS = $(LIBS) +if HAS_FUZZLDFLAGS +fuzz_ds_domain_classify_CXXFLAGS += $(LIB_FUZZING_ENGINE) +fuzz_ds_domain_classify_CFLAGS += $(LIB_FUZZING_ENGINE) +fuzz_ds_domain_classify_LDFLAGS += $(LIB_FUZZING_ENGINE) +endif +# force usage of CXX for linker +fuzz_ds_domain_classify_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXX) @NDPI_CFLAGS@ $(AM_CXXFLAGS) $(CXXFLAGS) \ + $(fuzz_ds_domain_classify_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@ + fuzz_libinjection_SOURCES = fuzz_libinjection.c fuzz_libinjection_CFLAGS = @NDPI_CFLAGS@ $(CXXFLAGS) fuzz_libinjection_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS) @@ -440,17 +470,14 @@ fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip: $(testpcaps) zip -j fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip $(testpcaps) files_corpus_fuzz_quic_get_crypto_data := $(wildcard corpus/fuzz_quic_get_crypto_data/*) - fuzz_quic_get_crypto_data_seed_corpus.zip: $(files_corpus_fuzz_quic_get_crypto_data) zip -j fuzz_quic_get_crypto_data_seed_corpus.zip $(files_corpus_fuzz_quic_get_crypto_data) files_corpus_fuzz_config := $(wildcard corpus/fuzz_config/*) - fuzz_config_seed_corpus.zip: $(files_corpus_fuzz_config) zip -j fuzz_config_seed_corpus.zip $(files_corpus_fuzz_config) files_corpus_fuzz_serialization := $(wildcard corpus/fuzz_serialization/*) - fuzz_serialization_seed_corpus.zip: $(files_corpus_fuzz_serialization) zip -j fuzz_serialization_seed_corpus.zip $(files_corpus_fuzz_serialization) @@ -460,91 +487,82 @@ fuzz_community_id_seed_corpus.zip: $(files_corpus_fuzz_community_id) zip -j fuzz_community_id_seed_corpus.zip $(files_corpus_fuzz_community_id) files_corpus_fuzz_ds_patricia := $(wildcard corpus/fuzz_ds_patricia/*) - fuzz_ds_patricia_seed_corpus.zip: $(files_corpus_fuzz_ds_patricia) zip -j fuzz_ds_patricia_seed_corpus.zip $(files_corpus_fuzz_ds_patricia) files_corpus_fuzz_ds_ahocorasick := $(wildcard corpus/fuzz_ds_ahocorasick/*) - fuzz_ds_ahocorasick_seed_corpus.zip: $(files_corpus_fuzz_ds_ahocorasick) zip -j fuzz_ds_ahocorasick_seed_corpus.zip $(files_corpus_fuzz_ds_ahocorasick) files_corpus_fuzz_alg_ses_des := $(wildcard corpus/fuzz_alg_ses_des/*) - fuzz_alg_ses_des_seed_corpus.zip: $(files_corpus_fuzz_alg_ses_des) zip -j fuzz_alg_ses_des_seed_corpus.zip $(files_corpus_fuzz_alg_ses_des) files_corpus_fuzz_alg_hw_rsi_outliers_da := $(wildcard corpus/fuzz_alg_hw_rsi_outliers_da/*) - fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip: $(files_corpus_fuzz_alg_hw_rsi_outliers_da) zip -j fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip $(files_corpus_fuzz_alg_hw_rsi_outliers_da) files_corpus_fuzz_alg_bins := $(wildcard corpus/fuzz_alg_bins/*) - fuzz_alg_bins_seed_corpus.zip: $(files_corpus_fuzz_alg_bins) zip -j fuzz_alg_bins_seed_corpus.zip $(files_corpus_fuzz_alg_bins) files_corpus_fuzz_alg_hll := $(wildcard corpus/fuzz_alg_hll/*) - fuzz_alg_hll_seed_corpus.zip: $(files_corpus_fuzz_alg_hll) zip -j fuzz_alg_hll_seed_corpus.zip $(files_corpus_fuzz_alg_hll) files_corpus_fuzz_alg_jitter := $(wildcard corpus/fuzz_alg_jitter/*) - fuzz_alg_jitter_seed_corpus.zip: $(files_corpus_fuzz_alg_jitter) zip -j fuzz_alg_jitter_seed_corpus.zip $(files_corpus_fuzz_alg_jitter) files_corpus_fuzz_alg_crc32_md5 := $(wildcard corpus/fuzz_alg_crc32_md5/*) - fuzz_alg_crc32_md5_seed_corpus.zip: $(files_corpus_fuzz_alg_crc32_md5) zip -j fuzz_alg_crc32_md5_seed_corpus.zip $(files_corpus_fuzz_alg_crc32_md5) files_corpus_fuzz_ds_libcache := $(wildcard corpus/fuzz_ds_libcache/*) - fuzz_ds_libcache_seed_corpus.zip: $(files_corpus_fuzz_ds_libcache) zip -j fuzz_ds_libcache_seed_corpus.zip $(files_corpus_fuzz_ds_libcache) files_corpus_fuzz_ds_tree := $(wildcard corpus/fuzz_ds_tree/*) - fuzz_ds_tree_seed_corpus.zip: $(files_corpus_fuzz_ds_tree) zip -j fuzz_ds_tree_seed_corpus.zip $(files_corpus_fuzz_ds_tree) files_corpus_fuzz_ds_ptree := $(wildcard corpus/fuzz_ds_ptree/*) - fuzz_ds_ptree_seed_corpus.zip: $(files_corpus_fuzz_ds_ptree) zip -j fuzz_ds_ptree_seed_corpus.zip $(files_corpus_fuzz_ds_ptree) files_corpus_fuzz_alg_bytestream := $(wildcard corpus/fuzz_alg_bytestream/*) - fuzz_alg_bytestream_seed_corpus.zip: $(files_corpus_fuzz_alg_bytestream) zip -j fuzz_alg_bytestream_seed_corpus.zip $(files_corpus_fuzz_alg_bytestream) files_corpus_fuzz_libinjection := $(wildcard corpus/fuzz_libinjection/*) - fuzz_libinjection_seed_corpus.zip: $(files_corpus_fuzz_libinjection) zip -j fuzz_libinjection_seed_corpus.zip $(files_corpus_fuzz_libinjection) files_corpus_fuzz_tls_certificate := $(wildcard corpus/fuzz_tls_certificate/*) - fuzz_tls_certificate_seed_corpus.zip: $(files_corpus_fuzz_tls_certificate) zip -j fuzz_tls_certificate_seed_corpus.zip $(files_corpus_fuzz_tls_certificate) files_corpus_fuzz_filecfg_protocols := $(wildcard corpus/fuzz_filecfg_protocols/*) - fuzz_filecfg_protocols_seed_corpus.zip: $(files_corpus_fuzz_filecfg_protocols) zip -j fuzz_filecfg_protocols_seed_corpus.zip $(files_corpus_fuzz_filecfg_protocols) files_corpus_fuzz_readerutils_workflow := $(wildcard corpus/fuzz_readerutils_workflow/*) - fuzz_readerutils_workflow_seed_corpus.zip: $(files_corpus_fuzz_readerutils_workflow) zip -j fuzz_readerutils_workflow_seed_corpus.zip $(files_corpus_fuzz_readerutils_workflow) files_corpus_fuzz_readerutils_parseprotolist := $(wildcard corpus/fuzz_readerutils_parseprotolist/*) - fuzz_readerutils_parseprotolist_seed_corpus.zip: $(files_corpus_fuzz_readerutils_parseprotolist) zip -j fuzz_readerutils_parseprotolist_seed_corpus.zip $(files_corpus_fuzz_readerutils_parseprotolist) -corpus: fuzz_ndpi_reader_seed_corpus.zip fuzz_ndpi_reader_alloc_fail_seed_corpus.zip fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip fuzz_quic_get_crypto_data_seed_corpus.zip fuzz_config_seed_corpus.zip fuzz_ds_patricia_seed_corpus.zip fuzz_ds_ahocorasick_seed_corpus.zip fuzz_alg_ses_des_seed_corpus.zip fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip fuzz_alg_bins_seed_corpus.zip fuzz_alg_hll_seed_corpus.zip fuzz_alg_jitter_seed_corpus.zip fuzz_ds_libcache_seed_corpus.zip fuzz_community_id_seed_corpus.zip fuzz_ds_tree_seed_corpus.zip fuzz_serialization_seed_corpus.zip fuzz_ds_ptree_seed_corpus.zip fuzz_alg_crc32_md5_seed_corpus.zip fuzz_alg_bytestream_seed_corpus.zip fuzz_libinjection_seed_corpus.zip fuzz_tls_certificate_seed_corpus.zip fuzz_filecfg_protocols_seed_corpus.zip fuzz_readerutils_workflow_seed_corpus.zip fuzz_readerutils_parseprotolist_seed_corpus.zip +files_corpus_fuzz_ds_bitmap64 := $(wildcard corpus/fuzz_ds_bitmap64/*) +fuzz_ds_bitmap64_seed_corpus.zip: $(files_corpus_fuzz_ds_bitmap64) + zip -j fuzz_ds_bitmap64_seed_corpus.zip $(files_corpus_fuzz_ds_bitmap64) + +files_corpus_fuzz_ds_domain_classify := $(wildcard corpus/fuzz_ds_domain_classify/*) +fuzz_ds_domain_classify_seed_corpus.zip: $(files_corpus_fuzz_ds_domain_classify) + zip -j fuzz_ds_domain_classify_seed_corpus.zip $(files_corpus_fuzz_ds_domain_classify) + +corpus: fuzz_ndpi_reader_seed_corpus.zip fuzz_ndpi_reader_alloc_fail_seed_corpus.zip fuzz_ndpi_reader_payload_analyzer_seed_corpus.zip fuzz_quic_get_crypto_data_seed_corpus.zip fuzz_config_seed_corpus.zip fuzz_ds_patricia_seed_corpus.zip fuzz_ds_ahocorasick_seed_corpus.zip fuzz_alg_ses_des_seed_corpus.zip fuzz_alg_hw_rsi_outliers_da_seed_corpus.zip fuzz_alg_bins_seed_corpus.zip fuzz_alg_hll_seed_corpus.zip fuzz_alg_jitter_seed_corpus.zip fuzz_ds_libcache_seed_corpus.zip fuzz_community_id_seed_corpus.zip fuzz_ds_tree_seed_corpus.zip fuzz_serialization_seed_corpus.zip fuzz_ds_ptree_seed_corpus.zip fuzz_alg_crc32_md5_seed_corpus.zip fuzz_alg_bytestream_seed_corpus.zip fuzz_libinjection_seed_corpus.zip fuzz_tls_certificate_seed_corpus.zip fuzz_filecfg_protocols_seed_corpus.zip fuzz_readerutils_workflow_seed_corpus.zip fuzz_readerutils_parseprotolist_seed_corpus.zip fuzz_ds_bitmap64_seed_corpus.zip fuzz_ds_domain_classify_seed_corpus.zip cp corpus/fuzz_*seed_corpus.zip . #Create dictionaries exactly as expected by oss-fuzz. @@ -588,6 +606,8 @@ distdir: -o -path './corpus/fuzz_ds_ahocorasick/*' \ -o -path './corpus/fuzz_ds_libcache/*' \ -o -path './corpus/fuzz_ds_tree/*' \ + -o -path './corpus/fuzz_ds_bitmap64/*' \ + -o -path './corpus/fuzz_ds_domain_classify/*' \ -o -path './corpus/fuzz_ds_ptree/*' \ -o -path './corpus/fuzz_ds_patricia/*' | xargs -I'{}' cp -r '{}' '$(distdir)/{}' |