Coverage Report

Created: 2026-02-09 06:39

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/guetzli/fuzz_target.cc
Line
Count
Source
1
#include <stdint.h>
2
#include "guetzli/jpeg_data.h"
3
#include "guetzli/jpeg_data_reader.h"
4
#include "guetzli/processor.h"
5
6
4.44k
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
7
4.44k
  std::string jpeg_data(reinterpret_cast<const char*>(data), size);
8
9
  // Ignore large images, to prevent timeouts.
10
4.44k
  guetzli::JPEGData jpg_header;
11
4.44k
  if (!guetzli::ReadJpeg(data, size, guetzli::JPEG_READ_HEADER, &jpg_header)) {
12
687
    return 0;
13
687
  }
14
3.75k
  static constexpr int kMaxPixels = 10000;
15
3.75k
  if (static_cast<int64_t>(jpg_header.width) * jpg_header.height > kMaxPixels) {
16
15
    return 0;
17
15
  }
18
19
  // TODO(robryk): Use nondefault parameters.
20
3.73k
  guetzli::Params params;
21
3.73k
  std::string jpeg_out;
22
3.73k
  (void)guetzli::Process(params, nullptr, jpeg_data, &jpeg_out);
23
  // TODO(robryk): Verify output distance if Process() succeeded.
24
3.73k
  return 0;
25
3.75k
}
26
27
28
29