Coverage Report

Created: 2025-11-02 06:47

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ndpi/fuzz/fuzz_alg_shoco.cpp
Line
Count
Source
1
#include <stdint.h>
2
#include "shoco.h"
3
#include "ndpi_api.h"
4
#include "fuzzer/FuzzedDataProvider.h"
5
6
233
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
7
233
  FuzzedDataProvider fuzzed_data(data, size);
8
233
  const char *in;
9
233
  size_t in_len, out_len;
10
233
  char out[8192], orig[8192];
11
233
  int higher_level_api;
12
13
  /* No memory allocations involved */
14
15
233
  higher_level_api = fuzzed_data.ConsumeBool();
16
17
233
  std::string s = fuzzed_data.ConsumeRemainingBytesAsString().c_str();
18
233
  in = s.c_str();
19
233
  in_len = strlen(in);
20
21
233
  if(!higher_level_api) {
22
122
    out_len = shoco_compress(in, in_len, out, sizeof(out));
23
122
    if(out_len <= sizeof(out)) /* No error */
24
93
      shoco_decompress(out, out_len, orig, sizeof(orig));
25
122
  } else {
26
111
    out_len = ndpi_compress_str(in, in_len, out, sizeof(out));
27
111
    if(out_len != 0) /* No error */
28
93
      ndpi_decompress_str(out, out_len, orig, sizeof(orig));
29
111
  }
30
31
233
  return 0;
32
233
}