From b3efa7d3fe81c8ff337a401de36b08189be79ed5 Mon Sep 17 00:00:00 2001 From: Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> Date: Thu, 25 Jan 2024 09:58:20 +0100 Subject: fuzz: fuzz_config: we need bigegr inputs (#2285) --- fuzz/fuzz_config.cpp | 7 ++----- fuzz/fuzz_config.options | 2 ++ src/lib/ndpi_domains.c | 7 +++---- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/fuzz/fuzz_config.cpp b/fuzz/fuzz_config.cpp index f99b87358..f906dab02 100644 --- a/fuzz/fuzz_config.cpp +++ b/fuzz/fuzz_config.cpp @@ -34,11 +34,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { char cfg_param[32]; u_int64_t cat_userdata = 0; - - /* Just to be sure to have some data */ - if(fuzzed_data.remaining_bytes() < NDPI_MAX_SUPPORTED_PROTOCOLS * 2 + 200) - return -1; - /* To allow memory allocation failures */ fuzz_set_alloc_callbacks_and_seed(size); @@ -85,6 +80,8 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { ndpi_load_malicious_sha1_file(ndpi_info_mod, fuzzed_data.ConsumeBool() ? NULL : "invalid_filename"); /* Error */ if(fuzzed_data.ConsumeBool()) ndpi_load_domain_suffixes(ndpi_info_mod, (char *)"public_suffix_list.dat"); + if(fuzzed_data.ConsumeBool()) + ndpi_load_domain_suffixes(ndpi_info_mod, (char *)"public_suffix_list.dat"); /* To trigger reload */ if(fuzzed_data.ConsumeBool()) ndpi_load_domain_suffixes(ndpi_info_mod, fuzzed_data.ConsumeBool() ? NULL : (char *)"invalid_filename"); /* Error */ /* Note that this function is not used by ndpiReader */ diff --git a/fuzz/fuzz_config.options b/fuzz/fuzz_config.options index 1c815b33f..154965aa4 100644 --- a/fuzz/fuzz_config.options +++ b/fuzz/fuzz_config.options @@ -1,2 +1,4 @@ [libfuzzer] close_fd_mask=1 +max_len=8192 +len_control=0 diff --git a/src/lib/ndpi_domains.c b/src/lib/ndpi_domains.c index ff7fd52cb..3c59e3cd9 100644 --- a/src/lib/ndpi_domains.c +++ b/src/lib/ndpi_domains.c @@ -29,7 +29,6 @@ int ndpi_load_domain_suffixes(struct ndpi_detection_module_struct *ndpi_str, char *public_suffix_list_path) { char buf[256], *line; FILE *fd; - bool do_trace = false; u_int num_domains = 0; if(public_suffix_list_path == NULL) @@ -64,16 +63,16 @@ int ndpi_load_domain_suffixes(struct ndpi_detection_module_struct *ndpi_str, if(!ndpi_domain_classify_add(ndpi_str->public_domain_suffixes, 1 /* dummy */, &line[offset])) { - if(do_trace) NDPI_LOG_ERR(ndpi_str, "Error while processing domain %s\n", &line[offset]); + NDPI_LOG_ERR(ndpi_str, "Error while processing domain %s\n", &line[offset]); } else num_domains++; } if(!ndpi_domain_classify_finalize(ndpi_str->public_domain_suffixes)) { - if(do_trace) NDPI_LOG_ERR(ndpi_str, "Error while finalizing domain processing\n"); + NDPI_LOG_ERR(ndpi_str, "Error while finalizing domain processing\n"); } - if(do_trace) NDPI_LOG_ERR(ndpi_str, "Loaded %u domains\n", num_domains); + NDPI_LOG_DBG(ndpi_str, "Loaded %u domains\n", num_domains); return(0); } -- cgit v1.2.3