aboutsummaryrefslogtreecommitdiff
path: root/fuzz/fuzz_filecfg_protocols.c
diff options
context:
space:
mode:
authorIvan Nardi <12729895+IvanNardi@users.noreply.github.com>2023-08-20 15:18:19 +0200
committerGitHub <noreply@github.com>2023-08-20 15:18:19 +0200
commitcc4461f4246f9e8eca9be5796aa53ec785d1a4f0 (patch)
tree873eb5d7a031e23c8c0401fa63b17af6cb105e2f /fuzz/fuzz_filecfg_protocols.c
parent5867f43fae70b1a08b64e8635bf8183ba4d29124 (diff)
fuzz: extend coverage (#2073)
Diffstat (limited to 'fuzz/fuzz_filecfg_protocols.c')
-rw-r--r--fuzz/fuzz_filecfg_protocols.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/fuzz/fuzz_filecfg_protocols.c b/fuzz/fuzz_filecfg_protocols.c
new file mode 100644
index 000000000..cba26c07c
--- /dev/null
+++ b/fuzz/fuzz_filecfg_protocols.c
@@ -0,0 +1,47 @@
+#include "ndpi_api.h"
+#include "fuzz_common_code.h"
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ struct ndpi_detection_module_struct *ndpi_struct;
+ FILE *fd;
+ /* Try to be fast */
+ ndpi_init_prefs prefs = ndpi_dont_load_tor_list |
+ ndpi_dont_load_azure_list |
+ ndpi_dont_load_whatsapp_list |
+ ndpi_dont_load_amazon_aws_list |
+ ndpi_dont_load_ethereum_list |
+ ndpi_dont_load_zoom_list |
+ ndpi_dont_load_cloudflare_list |
+ ndpi_dont_load_microsoft_list |
+ ndpi_dont_load_google_list |
+ ndpi_dont_load_google_cloud_list |
+ ndpi_dont_load_asn_lists |
+ ndpi_dont_init_risk_ptree |
+ ndpi_dont_load_cachefly_list |
+ ndpi_dont_load_protonvpn_list |
+ ndpi_dont_load_gambling_list |
+ ndpi_dont_load_mullvad_list;
+ NDPI_PROTOCOL_BITMASK all;
+ NDPI_PROTOCOL_BITMASK debug_bitmask;
+
+ /* To allow memory allocation failures */
+ fuzz_set_alloc_callbacks_and_seed(size);
+
+ ndpi_struct = ndpi_init_detection_module(prefs);
+ NDPI_BITMASK_SET_ALL(all);
+ ndpi_set_protocol_detection_bitmask2(ndpi_struct, &all);
+
+ NDPI_BITMASK_SET_ALL(debug_bitmask);
+ ndpi_set_log_level(ndpi_struct, 4);
+ ndpi_set_debug_bitmask(ndpi_struct, debug_bitmask);
+
+ fd = buffer_to_file(data, size);
+ ndpi_load_protocols_file2(ndpi_struct, fd);
+ if(fd)
+ fclose(fd);
+
+ /* We don't really need to call ndpi_finalize_initialization */
+
+ ndpi_exit_detection_module(ndpi_struct);
+ return 0;
+}