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