aboutsummaryrefslogtreecommitdiff
path: root/fuzz/fuzz_ds_hash.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz/fuzz_ds_hash.cpp')
-rw-r--r--fuzz/fuzz_ds_hash.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/fuzz/fuzz_ds_hash.cpp b/fuzz/fuzz_ds_hash.cpp
index 0b1e79e6d..9bb065365 100644
--- a/fuzz/fuzz_ds_hash.cpp
+++ b/fuzz/fuzz_ds_hash.cpp
@@ -6,17 +6,10 @@
#include <assert.h>
#include "fuzzer/FuzzedDataProvider.h"
-extern "C" void cleanup_func(ndpi_str_hash *h) {
- (void)h;
- /* Nothing to do */
- return;
-}
-
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
FuzzedDataProvider fuzzed_data(data, size);
u_int16_t i, rc, num_iteration, data_len, is_added = 0;
std::vector<char>value_added;
- void *value;
ndpi_str_hash *h = NULL;
/* Just to have some data */
@@ -37,7 +30,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
data_len = fuzzed_data.ConsumeIntegralInRange(0, 127);
std::vector<char>data = fuzzed_data.ConsumeBytes<char>(data_len);
- rc = ndpi_hash_add_entry(&h, data.data(), data.size(), &i);
+ rc = ndpi_hash_add_entry(&h, data.data(), data.size(), (u_int16_t)i);
/* Keep one random entry really added */
if (rc == 0 && fuzzed_data.ConsumeBool()) {
value_added = data;
@@ -48,19 +41,23 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
/* "Random" search */
num_iteration = fuzzed_data.ConsumeIntegral<u_int8_t>();
for (i = 0; i < num_iteration; i++) {
+ u_int16_t value16;
+
data_len = fuzzed_data.ConsumeIntegralInRange(0, 127);
std::vector<char>data = fuzzed_data.ConsumeBytes<char>(data_len);
- ndpi_hash_find_entry(h, data.data(), data.size(), &value);
+ ndpi_hash_find_entry(h, data.data(), data.size(), &value16);
}
/* Search of an added entry */
if (is_added) {
- ndpi_hash_find_entry(h, value_added.data(), value_added.size(), &value);
+ u_int16_t value16;
+ ndpi_hash_find_entry(h, value_added.data(), value_added.size(), &value16);
}
if (fuzzed_data.ConsumeBool())
- ndpi_hash_free(NULL, cleanup_func);
- ndpi_hash_free(&h, cleanup_func);
+ ndpi_hash_free(NULL);
+
+ ndpi_hash_free(&h);
return 0;
}