aboutsummaryrefslogtreecommitdiff
path: root/fuzz/fuzz_ds_ptree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz/fuzz_ds_ptree.cpp')
-rw-r--r--fuzz/fuzz_ds_ptree.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/fuzz/fuzz_ds_ptree.cpp b/fuzz/fuzz_ds_ptree.cpp
index ae92a0257..d8a055c3b 100644
--- a/fuzz/fuzz_ds_ptree.cpp
+++ b/fuzz/fuzz_ds_ptree.cpp
@@ -11,10 +11,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
FuzzedDataProvider fuzzed_data(data, size);
u_int16_t i, num_iteration;
ndpi_ptree_t *t;
- ndpi_ip_addr_t addr, addr_added;
+ ndpi_ip_addr_t addr, addr2, addr_added;
u_int8_t bits;
int rc, is_added = 0;
u_int64_t user_data;
+ char buf_ip[256];
/* To allow memory allocation failures */
fuzz_set_alloc_callbacks_and_seed(size);
@@ -37,6 +38,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
bits = fuzzed_data.ConsumeIntegralInRange(0, 32);
};
+ /* Not really ptree stuff, but this seem the right place to fuzz these `ndpi_ip_addr_t` functions */
+ ndpi_parse_ip_string(ndpi_get_ip_string(&addr, buf_ip, sizeof(buf_ip)), &addr2);
+
rc = ndpi_ptree_insert(t, &addr, bits, 0);
/* Keep one random node really added */
if (rc == 0 && is_added == 0 && fuzzed_data.ConsumeBool()) {