summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'leptonica/prog/fuzzing/boxfunc3_fuzzer.cc')
-rw-r--r--leptonica/prog/fuzzing/boxfunc3_fuzzer.cc107
1 files changed, 107 insertions, 0 deletions
diff --git a/leptonica/prog/fuzzing/boxfunc3_fuzzer.cc b/leptonica/prog/fuzzing/boxfunc3_fuzzer.cc
new file mode 100644
index 00000000..c43a2de0
--- /dev/null
+++ b/leptonica/prog/fuzzing/boxfunc3_fuzzer.cc
@@ -0,0 +1,107 @@
+#include "leptfuzz.h"
+
+extern "C" int
+LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
+ if(size<3) return 0;
+
+ leptSetStdNullHandler();
+
+ BOXA *boxa_payload, *boxa1;
+ boxa_payload = boxaReadMem(data, size);
+ if(boxa_payload == NULL) return 0;
+
+ PIX *pixc, *pixd, *pix, *pixs;
+ PIX *pix1, *pix2, *pix3, *pix4, *pix5, *pix6, *pix7;
+ BOXAA *baa;
+ static const l_int32 WIDTH = 800;
+
+ //boxaaDisplay()
+ pix1 = pixRead("../test8.jpg");
+ if(pix1!=NULL) {
+ baa = boxaSort2d(boxa_payload, NULL, 6, 6, 5);
+ pix2 = boxaaDisplay(pix1, baa, 3, 1, 0xff000000,
+ 0x00ff0000, 0, 0);
+ boxaaDestroy(&baa);
+ pixDestroy(&pix1);
+ pixDestroy(&pix2);
+ }
+
+ //pixBlendBoxaRandom();
+ pixc = pixRead("../test8.jpg");
+ if(pixc!=NULL) {
+ pixd = pixBlendBoxaRandom(pixc, boxa_payload, 0.4);
+ pixDestroy(&pixc);
+ pixDestroy(&pixd);
+ }
+
+ //pixDrawBoxa();
+ pixc = pixRead("../test8.jpg");
+ if(pixc!=NULL) {
+ pixd = pixConvertTo1(pixc, 128);
+ pix1 = pixConvertTo8(pixd, FALSE);
+ pix2 = pixDrawBoxa(pix1, boxa_payload, 7, 0x40a0c000);
+ pixDestroy(&pix1);
+ pixDestroy(&pix2);
+ pixDestroy(&pixc);
+ pixDestroy(&pixd);
+ }
+
+ //pixMaskConnComp();
+ pix1 = pixRead("../test8.jpg");
+ if(pix1!=NULL) {
+ boxa1 = boxaReadMem(data, size);
+ if(boxa1==NULL) {
+ pixDestroy(&pix1);
+ }else{
+ pix2 = pixScaleToSize(pix1, WIDTH, 0);
+ pix3 = pixConvertTo1(pix2, 100);
+ pix4 = pixExpandBinaryPower2(pix3, 2);
+ pix5 = pixGenerateHalftoneMask(pix4, NULL, NULL, NULL);
+ pix6 = pixMorphSequence(pix5, "c20.1 + c1.20", 0);
+ pix7 = pixMaskConnComp(pix6, 8, &boxa1);
+ boxaDestroy(&boxa1);
+ pixDestroy(&pix1);
+ pixDestroy(&pix2);
+ pixDestroy(&pix3);
+ pixDestroy(&pix4);
+ pixDestroy(&pix5);
+ pixDestroy(&pix6);
+ pixDestroy(&pix7);
+ }
+ }
+
+ //pixPaintBoxa();
+ pix = pixRead("../test8.jpg");
+ if(pix!=NULL) {
+ boxa1 = boxaReadMem(data, size);
+ if(boxa1==NULL) {
+ pixDestroy(&pix);
+ }else{
+ pix1 = pixPaintBoxa(pix, boxa1, 0x60e0a000);
+ pixDestroy(&pix);
+ pixDestroy(&pix1);
+ boxaDestroy(&boxa1);
+ };
+
+ }
+
+
+ //pixPaintBoxaRandom();
+ pix = pixRead("../test8.jpg");
+ if(pix!=NULL) {
+ boxa1 = boxaReadMem(data, size);
+ if(boxa1==NULL) {
+ pixDestroy(&pix);
+ }else{
+ pixs = pixConvertTo1(pix, 128);
+ pix1 = pixPaintBoxaRandom(pixs, boxa1);
+ pixDestroy(&pix);
+ pixDestroy(&pixs);
+ pixDestroy(&pix1);
+ boxaDestroy(&boxa1);
+ }
+ }
+
+ boxaDestroy(&boxa_payload);
+ return 0;
+}