diff options
author | Nardi Ivan <nardi.ivan@gmail.com> | 2024-01-10 11:46:57 +0100 |
---|---|---|
committer | Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> | 2024-01-18 10:21:24 +0100 |
commit | 0712d496fe63fd16f8e943a438c57f75d8cae880 (patch) | |
tree | 5102d4c3de8250cd16f52658de3f0dad55554c7c /fuzz/fuzz_config.cpp | |
parent | 6c85f10cd5a29346522ad647a38066f0cc44e5a7 (diff) |
config: allow configuration of guessing algorithms
Diffstat (limited to 'fuzz/fuzz_config.cpp')
-rw-r--r-- | fuzz/fuzz_config.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/fuzz/fuzz_config.cpp b/fuzz/fuzz_config.cpp index 93bff3313..5c79ede4c 100644 --- a/fuzz/fuzz_config.cpp +++ b/fuzz/fuzz_config.cpp @@ -195,6 +195,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { ndpi_set_config(ndpi_info_mod, NULL, "libgcrypt.init", cfg_value); } if(fuzzed_data.ConsumeBool()) { + value = fuzzed_data.ConsumeIntegralInRange(0, 0x03 + 1); + sprintf(cfg_value, "%d", value); + ndpi_set_config(ndpi_info_mod, NULL, "guess_on_giveup", cfg_value); + } + if(fuzzed_data.ConsumeBool()) { value = fuzzed_data.ConsumeIntegralInRange(0, 1 + 1); sprintf(cfg_value, "%d", value); ndpi_set_config(ndpi_info_mod, NULL, "flow_risk_lists.load", cfg_value); @@ -214,7 +219,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { sprintf(cfg_value, "%d", value); ndpi_set_config(ndpi_info_mod, NULL, "flow_risk.crawler_bot.list.load", cfg_value); } - + if(fuzzed_data.ConsumeBool()) { + value = fuzzed_data.ConsumeIntegralInRange(0, 3 + 1); + sprintf(cfg_value, "%d", value); + ndpi_set_config(ndpi_info_mod, NULL, "log.level", cfg_value); + } if(fuzzed_data.ConsumeBool()) { value = fuzzed_data.ConsumeIntegralInRange(0, 16777215 / 2); /* max / 2 instead of max + 1 to avoid oom on oss-fuzzer */ sprintf(cfg_value, "%d", value); @@ -344,7 +353,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { std::vector<uint8_t>pkt = fuzzed_data.ConsumeRemainingBytes<uint8_t>(); ndpi_detection_process_packet(ndpi_info_mod, &flow, pkt.data(), pkt.size(), 0, &input_info); - p = ndpi_detection_giveup(ndpi_info_mod, &flow, 1, &protocol_was_guessed); + p = ndpi_detection_giveup(ndpi_info_mod, &flow, &protocol_was_guessed); assert(p.master_protocol == ndpi_get_flow_masterprotocol(ndpi_info_mod, &flow)); assert(p.app_protocol == ndpi_get_flow_appprotocol(ndpi_info_mod, &flow)); |