/src/leptonica/prog/fuzzing/mask_fuzzer.cc
Line | Count | Source |
1 | | #include "leptfuzz.h" |
2 | | |
3 | | PIX * |
4 | | MakeReplacementMask(PIX *pixs) |
5 | 1.12k | { |
6 | 1.12k | PIX *pix1, *pix2, *pix3, *pix4; |
7 | | |
8 | 1.12k | pix1 = pixMaskOverColorPixels(pixs, 95, 3); |
9 | 1.12k | pix2 = pixMorphSequence(pix1, "o15.15", 0); |
10 | 1.12k | pixSeedfillBinary(pix2, pix2, pix1, 8); |
11 | 1.12k | pix3 = pixMorphSequence(pix2, "c15.15 + d61.31", 0); |
12 | 1.12k | pix4 = pixRemoveBorderConnComps(pix3, 8); |
13 | 1.12k | pixXor(pix4, pix4, pix3); |
14 | 1.12k | pixDestroy(&pix1); |
15 | 1.12k | pixDestroy(&pix2); |
16 | 1.12k | pixDestroy(&pix3); |
17 | 1.12k | return pix4; |
18 | 1.12k | } |
19 | | |
20 | | |
21 | | extern "C" int |
22 | | LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) |
23 | 38.6k | { |
24 | 38.6k | if(size<3) return 0; |
25 | | |
26 | 38.5k | leptSetStdNullHandler(); |
27 | | |
28 | 38.5k | PIX *pixs, *pix1, *pix2; |
29 | | |
30 | 38.5k | pixs = pixReadMemSpix(data, size); |
31 | 38.5k | if(pixs==NULL) return 0; |
32 | | |
33 | 20.8k | pix1 = MakeReplacementMask(pixs); |
34 | 20.8k | pix2 = pixConvertTo8(pix1, FALSE); |
35 | | |
36 | 20.8k | pixPaintSelfThroughMask(pix2, pix1, 0, 0, L_HORIZ, 30, 50, 5, 10); |
37 | | |
38 | 20.8k | pixDestroy(&pixs); |
39 | 20.8k | pixDestroy(&pix1); |
40 | 20.8k | pixDestroy(&pix2); |
41 | 20.8k | return 0; |
42 | 38.5k | } |