Coverage Report

Created: 2026-07-26 07:06

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libvips/fuzz/thumbnail_fuzzer.cc
Line
Count
Source
1
#include "config.h"
2
3
#include <vips/vips.h>
4
5
extern "C" int
6
LLVMFuzzerInitialize(int *argc, char ***argv)
7
36
{
8
36
  if (VIPS_INIT(*argv[0]))
9
0
    return -1;
10
11
36
  vips_concurrency_set(1);
12
36
  return 0;
13
36
}
14
15
extern "C" int
16
LLVMFuzzerTestOneInput(const guint8 *data, size_t size)
17
466k
{
18
466k
  VipsImage *image, *out;
19
466k
  double d;
20
21
466k
  if (!(image = vips_image_new_from_buffer(data, size, "", nullptr)))
22
154k
    return 0;
23
24
312k
  if (image->Xsize > 100 ||
25
300k
    image->Ysize > 100 ||
26
295k
    image->Bands > 4) {
27
17.1k
    g_object_unref(image);
28
17.1k
    return 0;
29
17.1k
  }
30
31
295k
  if (vips_thumbnail_image(image, &out, 42, nullptr)) {
32
158k
    g_object_unref(image);
33
158k
    return 0;
34
158k
  }
35
36
136k
  vips_avg(out, &d, nullptr);
37
38
136k
  g_object_unref(out);
39
136k
  g_object_unref(image);
40
41
136k
  return 0;
42
295k
}