diff options
Diffstat (limited to 'fuzz/fuzz_ds_ptree.cpp')
-rw-r--r-- | fuzz/fuzz_ds_ptree.cpp | 6 |
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()) { |