Coverage Report

Created: 2025-06-13 06:57

/src/leptonica/prog/fuzzing/pix3_fuzzer.cc
Line
Count
Source
1
#include "leptfuzz.h"
2
3
extern "C" int
4
1.13k
LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { 
5
1.13k
  if(size<3) return 0;
6
 
7
1.13k
  leptSetStdNullHandler();
8
9
1.13k
  PIX *pixs_payload = pixReadMemSpix(data, size);
10
1.13k
  if(pixs_payload == NULL) return 0;
11
12
492
  BOX *box1;
13
492
  PIX *pix_pointer_payload, *return_pix, *pix2;
14
492
  NUMA *return_numa;
15
492
  l_float32 l_f;
16
492
  l_int32 l_i;
17
492
  l_uint32 l_ui;
18
492
  BOXA *boxa1;
19
20
492
  box1 = boxCreate(150, 130, 1500, 355);
21
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
22
492
  return_numa = pixAbsDiffByColumn(pix_pointer_payload, box1);
23
492
  pixDestroy(&pix_pointer_payload);
24
492
  boxDestroy(&box1);
25
492
        numaDestroy(&return_numa);
26
27
492
  box1 = boxCreate(150, 130, 1500, 355);
28
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
29
492
  return_numa = pixAbsDiffByRow(pix_pointer_payload, box1);
30
492
  pixDestroy(&pix_pointer_payload);
31
492
  boxDestroy(&box1);
32
492
        numaDestroy(&return_numa);
33
34
492
  box1 = boxCreate(150, 130, 1500, 355);
35
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
36
492
  pixAbsDiffInRect(pix_pointer_payload, box1, L_HORIZONTAL_LINE, &l_f);
37
492
  pixDestroy(&pix_pointer_payload);
38
492
  boxDestroy(&box1);
39
40
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
41
492
  pixAbsDiffOnLine(pix_pointer_payload, 2, 2, 3, 3, &l_f);
42
492
  pixDestroy(&pix_pointer_payload);
43
44
492
  box1 = boxCreate(150, 130, 1500, 355);
45
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
46
492
  return_numa = pixAverageByColumn(pix_pointer_payload, box1,
47
492
                                         L_BLACK_IS_MAX);
48
492
  boxDestroy(&box1);
49
492
  pixDestroy(&pix_pointer_payload);
50
492
  numaDestroy(&return_numa);
51
  
52
492
  box1 = boxCreate(150, 130, 1500, 355);
53
492
  return_numa = pixAverageByRow(pix_pointer_payload, box1,
54
492
                                      L_WHITE_IS_MAX);
55
492
  boxDestroy(&box1);
56
492
  pixDestroy(&pix_pointer_payload);
57
492
  numaDestroy(&return_numa);
58
59
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
60
492
  pixAverageInRect(pix_pointer_payload, NULL, NULL, 0, 255, 1, &l_f);
61
492
  pixDestroy(&pix_pointer_payload);
62
63
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
64
492
  pixAverageInRectRGB(pix_pointer_payload, NULL, NULL, 10, &l_ui);
65
492
  pixDestroy(&pix_pointer_payload);
66
67
492
  boxa1 = boxaCreate(0);
68
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
69
492
  return_pix = pixCopyWithBoxa(pix_pointer_payload, boxa1, L_SET_WHITE);
70
492
  pixDestroy(&pix_pointer_payload);
71
492
  boxaDestroy(&boxa1);
72
492
  pixDestroy(&return_pix);
73
  
74
2.95k
  for (int i = 0; i < 5; i++) {
75
2.46k
            box1 = boxCreate(150, 130, 1500, 355);
76
2.46k
      pix_pointer_payload = pixCopy(NULL, pixs_payload);
77
2.46k
      pixCountArbInRect(pix_pointer_payload, box1, L_SET_WHITE, 2, &l_i);
78
2.46k
      pixDestroy(&pix_pointer_payload);
79
2.46k
      boxDestroy(&box1);
80
2.46k
  }
81
82
492
  box1 = boxCreate(150, 130, 1500, 355);
83
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
84
492
  return_numa = pixCountByRow(pix_pointer_payload, box1);
85
492
  pixDestroy(&pix_pointer_payload);
86
492
  boxDestroy(&box1);
87
492
  numaDestroy(&return_numa);
88
  
89
492
  box1 = boxCreate(150, 130, 1500, 355);
90
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
91
492
  pixCountPixelsInRect(pix_pointer_payload, box1, &l_i, NULL);
92
492
  boxDestroy(&box1);
93
492
  pixDestroy(&pix_pointer_payload);
94
95
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
96
492
  return_pix = pixMakeArbMaskFromRGB(pix_pointer_payload,
97
492
                                           -0.5, -0.5, 1.0, 20);
98
492
  pixDestroy(&pix_pointer_payload);
99
492
  pixDestroy(&return_pix);
100
101
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
102
2.95k
  for (int i = 0; i < 5; i++) {
103
2.46k
            return_pix = pixMakeMaskFromVal(pix_pointer_payload, i);
104
2.46k
      pixDestroy(&pix_pointer_payload);
105
2.46k
      pixDestroy(&return_pix);
106
2.46k
        }
107
    
108
492
  pix2 = pixRead("../test8.jpg");
109
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
110
492
  pixPaintSelfThroughMask(pix_pointer_payload, pix2, 0, 0, L_HORIZ,
111
492
                                30, 50, 5, 10);
112
492
  pixDestroy(&pix2);
113
492
  pixDestroy(&pix_pointer_payload);
114
  
115
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
116
492
  return_pix = pixSetUnderTransparency(pix_pointer_payload, 0, 0);
117
492
  pixDestroy(&pix_pointer_payload);
118
492
  pixDestroy(&return_pix);
119
  
120
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
121
492
  return_numa = pixVarianceByColumn(pix2, NULL);
122
492
  pixDestroy(&pix_pointer_payload);
123
492
  numaDestroy(&return_numa);
124
  
125
492
  pix_pointer_payload = pixCopy(NULL, pixs_payload);
126
492
  return_numa = pixVarianceByRow(pix_pointer_payload, NULL);
127
492
  pixDestroy(&pix_pointer_payload);
128
492
  numaDestroy(&return_numa);
129
130
492
  box1 = boxCreate(150, 130, 1500, 355);
131
492
  pixVarianceInRect(pix_pointer_payload, box1, &l_f);
132
492
  boxDestroy(&box1);
133
492
  pixDestroy(&pix_pointer_payload);
134
135
492
  pixDestroy(&pixs_payload);
136
492
  return 0;
137
1.13k
}