/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 | } |