Coverage Report

Created: 2026-08-03 07:15

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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
static char *path = NULL;
13
14
42
int LLVMFuzzerInitialize(int *argc, char ***argv) {
15
42
  (void)argc;
16
17
42
  path = dirname(strdup(*argv[0])); /* No errors; no free! */
18
42
  return 0;
19
42
}
20
21
48.3k
int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
22
48.3k
  if (ndpi_info_mod == NULL) {
23
5
    fuzz_init_detection_module(&ndpi_info_mod, NULL, path);
24
25
5
    ndpi_init_serializer(&json_serializer, ndpi_serialization_format_json);
26
5
    ndpi_init_serializer(&csv_serializer, ndpi_serialization_format_csv);
27
5
  }
28
29
48.3k
  memset(&ndpi_flow, 0, SIZEOF_FLOW_STRUCT);
30
48.3k
  ndpi_protocol detected_protocol =
31
48.3k
    ndpi_detection_process_packet(ndpi_info_mod, &ndpi_flow, Data, Size, 0, NULL);
32
48.3k
  detected_protocol = ndpi_detection_giveup(ndpi_info_mod, &ndpi_flow);
33
34
48.3k
  ndpi_reset_serializer(&json_serializer);
35
48.3k
  ndpi_reset_serializer(&csv_serializer);
36
48.3k
  ndpi_dpi2json(ndpi_info_mod, &ndpi_flow, detected_protocol, &json_serializer);
37
48.3k
  ndpi_dpi2json(ndpi_info_mod, &ndpi_flow, detected_protocol, &csv_serializer);
38
48.3k
  ndpi_free_flow_data(&ndpi_flow);
39
40
48.3k
  return 0;
41
48.3k
}