From 26cc1f131f2576a49a3b9c43cd4b787b067b3f5a Mon Sep 17 00:00:00 2001 From: Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> Date: Mon, 17 Jun 2024 13:45:47 +0200 Subject: fuzz: improve fuzzing coverage (#2474) Remove some code never triggered AFP: the removed check is included in the following one MQTT: fix flags extraction --- fuzz/fuzz_alg_shoco.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'fuzz/fuzz_alg_shoco.cpp') diff --git a/fuzz/fuzz_alg_shoco.cpp b/fuzz/fuzz_alg_shoco.cpp index 40fe0f0f4..68d262660 100644 --- a/fuzz/fuzz_alg_shoco.cpp +++ b/fuzz/fuzz_alg_shoco.cpp @@ -1,5 +1,6 @@ #include #include "shoco.h" +#include "ndpi_api.h" #include "fuzzer/FuzzedDataProvider.h" extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { @@ -7,16 +8,25 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { const char *in; size_t in_len, out_len; char out[8192], orig[8192]; + int higher_level_api; /* No memory allocations involved */ + higher_level_api = fuzzed_data.ConsumeBool(); + std::string s = fuzzed_data.ConsumeRemainingBytesAsString().c_str(); in = s.c_str(); in_len = strlen(in); - out_len = shoco_compress(in, in_len, out, sizeof(out)); - if(out_len <= sizeof(out)) /* No error */ - shoco_decompress(out, out_len, orig, sizeof(orig)); + if(!higher_level_api) { + out_len = shoco_compress(in, in_len, out, sizeof(out)); + if(out_len <= sizeof(out)) /* No error */ + shoco_decompress(out, out_len, orig, sizeof(orig)); + } else { + out_len = ndpi_compress_str(in, in_len, out, sizeof(out)); + if(out_len != 0) /* No error */ + ndpi_decompress_str(out, out_len, orig, sizeof(orig)); + } return 0; } -- cgit v1.2.3