Coverage Report

Created: 2024-06-18 06:09

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