morph_fuzzer.cc 1.3 KB

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