/src/leptonica/prog/fuzzing/morph_fuzzer.cc
Line | Count | Source |
1 | | #include "leptfuzz.h" |
2 | | |
3 | | extern "C" int |
4 | 853 | LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { |
5 | 853 | if(size<3) return 0; |
6 | | |
7 | 851 | leptSetStdNullHandler(); |
8 | | |
9 | 851 | PIX *pixs_payload = pixReadMemSpix(data, size); |
10 | 851 | if(pixs_payload == NULL) return 0; |
11 | | |
12 | 191 | PIX *pix, *pix1, *pix_copy1, *pix_copy2, *pix_copy3, *pix_copy4; |
13 | 191 | BOX *box1; |
14 | 191 | SEL *sel; |
15 | | |
16 | 191 | pix = pixRead("../feyn-fract.tif"); |
17 | 191 | box1 = boxCreate(507, 65, 60, 36); |
18 | 191 | pix1 = pixClipRectangle(pix, box1, NULL); |
19 | 191 | sel = selCreateFromPix(pix1, 6, 6, "plus_sign"); |
20 | 191 | pix_copy1 = pixCopy(NULL, pixs_payload); |
21 | 191 | pixCloseGeneralized(pix_copy1, pix, sel); |
22 | 191 | boxDestroy(&box1); |
23 | 191 | pixDestroy(&pix_copy1); |
24 | 191 | pixDestroy(&pix1); |
25 | | |
26 | 191 | pix_copy2 = pixCopy(NULL, pixs_payload); |
27 | 191 | pixCloseSafe(pix_copy2, pix, sel); |
28 | 191 | pixDestroy(&pix_copy2); |
29 | | |
30 | 191 | pix_copy3 = pixCopy(NULL, pixs_payload); |
31 | 191 | pixOpenGeneralized(pix_copy3, pix, sel); |
32 | 191 | pixDestroy(&pix_copy3); |
33 | 191 | pixDestroy(&pix); |
34 | 191 | selDestroy(&sel); |
35 | | |
36 | 1.14k | for (l_int32 i = 0; i < 5; i++) { |
37 | 955 | if ((sel = selCreate (i, i, "sel_5dp")) == NULL) |
38 | 191 | continue; |
39 | 764 | char *selname = selGetName(sel); |
40 | 764 | pix_copy4 = pixCopy(NULL, pixs_payload); |
41 | 764 | pixMorphDwa_1(pix_copy4, pix_copy4, i, selname); |
42 | 764 | pixDestroy(&pix_copy4); |
43 | 764 | selDestroy(&sel); |
44 | 764 | } |
45 | | |
46 | 191 | pixDestroy(&pixs_payload); |
47 | 191 | return 0; |
48 | 851 | } |