diff options
-rw-r--r-- | fuzz/Makefile.am | 2 | ||||
-rw-r--r-- | fuzz/fuzz_alg_hw_rsi_outliers_da.cpp | 1 | ||||
-rw-r--r-- | fuzz/fuzz_config.cpp | 3 | ||||
-rw-r--r-- | fuzz/fuzz_config.options | 2 | ||||
-rw-r--r-- | fuzz/fuzz_ndpi_reader.c | 4 | ||||
-rw-r--r-- | fuzz/fuzz_ndpi_reader_alloc_fail.options | 2 | ||||
-rw-r--r-- | src/lib/ndpi_analyze.c | 2 |
7 files changed, 13 insertions, 3 deletions
diff --git a/fuzz/Makefile.am b/fuzz/Makefile.am index 3d3c757a3..30ce2d969 100644 --- a/fuzz/Makefile.am +++ b/fuzz/Makefile.am @@ -41,7 +41,7 @@ fuzz_ndpi_reader_LINK=$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(fuzz_ndpi_reader_LDFLAGS) @NDPI_LDFLAGS@ $(LDFLAGS) -o $@ fuzz_ndpi_reader_alloc_fail_SOURCES = fuzz_ndpi_reader.c fuzz_common_code.c ../example/reader_util.c -fuzz_ndpi_reader_alloc_fail_CFLAGS = -I../example/ @NDPI_CFLAGS@ $(CXXFLAGS) -DENABLE_MEM_ALLOC_FAILURES -DCRYPT_FORCE_NO_AESNI +fuzz_ndpi_reader_alloc_fail_CFLAGS = -I../example/ @NDPI_CFLAGS@ $(CXXFLAGS) -DENABLE_MEM_ALLOC_FAILURES -DCRYPT_FORCE_NO_AESNI -DENABLE_FINGERPRINT_FP fuzz_ndpi_reader_alloc_fail_LDADD = ../src/lib/libndpi.a $(ADDITIONAL_LIBS) fuzz_ndpi_reader_alloc_fail_LDFLAGS = $(PCAP_LIB) $(LIBS) if HAS_FUZZLDFLAGS diff --git a/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp b/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp index 9a72b21b3..9f68dd7cf 100644 --- a/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp +++ b/fuzz/fuzz_alg_hw_rsi_outliers_da.cpp @@ -92,6 +92,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { ndpi_data_stddev(a); ndpi_data_min(a); ndpi_data_max(a); + ndpi_data_jitter(a); ndpi_data_last(a); ndpi_data_window_average(a); ndpi_data_window_variance(a); diff --git a/fuzz/fuzz_config.cpp b/fuzz/fuzz_config.cpp index 26e272371..1a5b0e5b0 100644 --- a/fuzz/fuzz_config.cpp +++ b/fuzz/fuzz_config.cpp @@ -688,6 +688,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { ndpi_get_proto_by_name(ndpi_info_mod, NULL); /* Error */ ndpi_get_proto_by_name(ndpi_info_mod, "foo"); /* Invalid protocol */ ndpi_get_proto_name(ndpi_info_mod, pid); + ndpi_find_protocol_qoe(ndpi_info_mod, pid); struct in_addr pin; struct in6_addr pin6; @@ -754,6 +755,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { proto2.master_protocol = fuzzed_data.ConsumeIntegral<u_int16_t>(); ndpi_is_proto_equals(proto1, proto2, fuzzed_data.ConsumeBool()); + ndpi_rtp_payload_type2str(fuzzed_data.ConsumeIntegral<u_int8_t>(), fuzzed_data.ConsumeIntegral<u_int32_t>()); + char buf2[16]; ndpi_entropy2str(fuzzed_data.ConsumeFloatingPoint<float>(), fuzzed_data.ConsumeBool() ? buf2 : NULL, sizeof(buf2)); diff --git a/fuzz/fuzz_config.options b/fuzz/fuzz_config.options index 154965aa4..a9e9ecf49 100644 --- a/fuzz/fuzz_config.options +++ b/fuzz/fuzz_config.options @@ -1,4 +1,4 @@ [libfuzzer] close_fd_mask=1 -max_len=8192 +max_len=16384 len_control=0 diff --git a/fuzz/fuzz_ndpi_reader.c b/fuzz/fuzz_ndpi_reader.c index 5f29664be..aede901db 100644 --- a/fuzz/fuzz_ndpi_reader.c +++ b/fuzz/fuzz_ndpi_reader.c @@ -123,6 +123,10 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { ndpi_finalize_initialization(workflow->ndpi_struct); +#ifdef ENABLE_FINGERPRINT_FP + fingerprint_fp = stdout; +#endif + #ifdef CRYPT_FORCE_NO_AESNI force_no_aesni = 1; #endif diff --git a/fuzz/fuzz_ndpi_reader_alloc_fail.options b/fuzz/fuzz_ndpi_reader_alloc_fail.options new file mode 100644 index 000000000..1c815b33f --- /dev/null +++ b/fuzz/fuzz_ndpi_reader_alloc_fail.options @@ -0,0 +1,2 @@ +[libfuzzer] +close_fd_mask=1 diff --git a/src/lib/ndpi_analyze.c b/src/lib/ndpi_analyze.c index 6d29a2b89..fece048b9 100644 --- a/src/lib/ndpi_analyze.c +++ b/src/lib/ndpi_analyze.c @@ -208,7 +208,7 @@ float ndpi_data_mean(struct ndpi_analyze_struct *s) { /* ********************************************************************************* */ float ndpi_data_jitter(struct ndpi_analyze_struct *s) { - if(s->num_data_entries < 2) + if(!s || s->num_data_entries < 2) return(0); else return((float)s->jitter_total / (float)(s->num_data_entries - 1)); |