/src/ndpi/fuzz/fuzz_process_packet.c
Line | Count | Source |
1 | | #include "ndpi_api.h" |
2 | | #include "fuzz_common_code.h" |
3 | | |
4 | | #include <stdint.h> |
5 | | #include <stdio.h> |
6 | | |
7 | | struct ndpi_detection_module_struct *ndpi_info_mod = NULL; |
8 | | struct ndpi_flow_struct ndpi_flow; |
9 | | static ndpi_serializer json_serializer = {}; |
10 | | static ndpi_serializer csv_serializer = {}; |
11 | | |
12 | 23.9k | int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { |
13 | 23.9k | if (ndpi_info_mod == NULL) { |
14 | 3 | fuzz_init_detection_module(&ndpi_info_mod, NULL); |
15 | | |
16 | 3 | ndpi_init_serializer(&json_serializer, ndpi_serialization_format_json); |
17 | 3 | ndpi_init_serializer(&csv_serializer, ndpi_serialization_format_csv); |
18 | 3 | } |
19 | | |
20 | 23.9k | memset(&ndpi_flow, 0, SIZEOF_FLOW_STRUCT); |
21 | 23.9k | ndpi_protocol detected_protocol = |
22 | 23.9k | ndpi_detection_process_packet(ndpi_info_mod, &ndpi_flow, Data, Size, 0, NULL); |
23 | 23.9k | detected_protocol = ndpi_detection_giveup(ndpi_info_mod, &ndpi_flow); |
24 | | |
25 | 23.9k | ndpi_reset_serializer(&json_serializer); |
26 | 23.9k | ndpi_reset_serializer(&csv_serializer); |
27 | 23.9k | ndpi_dpi2json(ndpi_info_mod, &ndpi_flow, detected_protocol, &json_serializer); |
28 | 23.9k | ndpi_dpi2json(ndpi_info_mod, &ndpi_flow, detected_protocol, &csv_serializer); |
29 | 23.9k | ndpi_free_flow_data(&ndpi_flow); |
30 | | |
31 | 23.9k | return 0; |
32 | 23.9k | } |