aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2024-12-11 16:41:35 +0100
committerGitHub <noreply@github.com>2024-12-11 16:41:35 +0100
commitf20cec4985e5334dddd22f4c07df46694f000456 (patch)
tree8f16692f492f78f25064a12ffcdaabcb2a4a30fc
parent803410542e77023545a89627918adb9d601fa774 (diff)
fuzz: improve fuzzing coverage (#2642)
Updtae pl7m code (Fix swap-direction mutation)
-rw-r--r--fuzz/fuzz_config.cpp10
-rw-r--r--fuzz/fuzz_ndpi_reader.c1
-rw-r--r--src/lib/third_party/src/fuzz/pl7m.c2
3 files changed, 12 insertions, 1 deletions
diff --git a/fuzz/fuzz_config.cpp b/fuzz/fuzz_config.cpp
index 61fbce5ad..c8d8d7a65 100644
--- a/fuzz/fuzz_config.cpp
+++ b/fuzz/fuzz_config.cpp
@@ -380,6 +380,16 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
if(fuzzed_data.ConsumeBool()) {
value = fuzzed_data.ConsumeIntegralInRange(0, 1 + 1);
snprintf(cfg_value, sizeof(cfg_value), "%d", value);
+ ndpi_set_config(ndpi_info_mod, NULL, "dpi.compute_entropy", cfg_value);
+ }
+ if(fuzzed_data.ConsumeBool()) {
+ value = fuzzed_data.ConsumeIntegralInRange(0, 16777215 + 1);
+ snprintf(cfg_value, sizeof(cfg_value), "%d", value);
+ ndpi_set_config(ndpi_info_mod, NULL, "dpi.address_cache_size", cfg_value);
+ }
+ if(fuzzed_data.ConsumeBool()) {
+ value = fuzzed_data.ConsumeIntegralInRange(0, 1 + 1);
+ snprintf(cfg_value, sizeof(cfg_value), "%d", value);
ndpi_set_config(ndpi_info_mod, NULL, "fpc", cfg_value);
}
if(fuzzed_data.ConsumeBool()) {
diff --git a/fuzz/fuzz_ndpi_reader.c b/fuzz/fuzz_ndpi_reader.c
index 4e736909d..de38f95ac 100644
--- a/fuzz/fuzz_ndpi_reader.c
+++ b/fuzz/fuzz_ndpi_reader.c
@@ -98,6 +98,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
ndpi_set_config(workflow->ndpi_struct, "tls", "dpi.heuristics", "0x07");
ndpi_set_config(workflow->ndpi_struct, "tls", "dpi.heuristics.max_packets_extra_dissection", "40");
ndpi_set_config(workflow->ndpi_struct, "stun", "monitoring", "1");
+ ndpi_set_config(workflow->ndpi_struct, NULL, "dpi.address_cache_size", "8192");
ndpi_finalize_initialization(workflow->ndpi_struct);
diff --git a/src/lib/third_party/src/fuzz/pl7m.c b/src/lib/third_party/src/fuzz/pl7m.c
index 827e538e7..103c209c7 100644
--- a/src/lib/third_party/src/fuzz/pl7m.c
+++ b/src/lib/third_party/src/fuzz/pl7m.c
@@ -1085,7 +1085,7 @@ static void swap_direction(struct m_pkt *p)
case IPPROTO_UDP:
udp_h = (struct udphdr *)(p->raw_data + p->l4_offset);
tmp_port = udp_h->source;
- udp_h->source = udp_h->source;
+ udp_h->source = udp_h->dest;
udp_h->dest = tmp_port;
break;
case IPPROTO_TCP: