aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fuzz/Makefile.am2
-rw-r--r--fuzz/fuzz_alg_hw_rsi_outliers_da.cpp1
-rw-r--r--fuzz/fuzz_config.cpp3
-rw-r--r--fuzz/fuzz_config.options2
-rw-r--r--fuzz/fuzz_ndpi_reader.c4
-rw-r--r--fuzz/fuzz_ndpi_reader_alloc_fail.options2
-rw-r--r--src/lib/ndpi_analyze.c2
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));