Coverage Report

Created: 2025-06-22 07:10

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