fpix2_fuzzer.cc 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. #include "leptfuzz.h"
  2. //static void MakePtas(l_int32 i, PTA **pptas, PTA **pptad);
  3. extern "C" int
  4. LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
  5. if(size<3) return 0;
  6. leptSetStdNullHandler();
  7. PIX *tmp_pixs = pixReadMemSpix(data, size);
  8. if(tmp_pixs == NULL) return 0;
  9. DPIX *dpix_payload = pixConvertToDPix(tmp_pixs, 1);
  10. if(dpix_payload == NULL) {
  11. pixDestroy(&tmp_pixs);
  12. return 0;
  13. }
  14. FPIX *fpix_payload = dpixConvertToFPix(dpix_payload);
  15. if(fpix_payload == NULL) {
  16. pixDestroy(&tmp_pixs);
  17. dpixDestroy(&dpix_payload);
  18. return 0;
  19. }
  20. DPIX *dpix_copy1 = dpixCopy(dpix_payload);
  21. dpixAddMultConstant(dpix_copy1, 1.0, 1.2);
  22. dpixDestroy(&dpix_copy1);
  23. DPIX *dpix_copy2 = dpixCopy(dpix_payload);
  24. FPIX *fpixs1 = dpixConvertToFPix(dpix_copy2);
  25. fpixDestroy(&fpixs1);
  26. dpixDestroy(&dpix_copy2);
  27. DPIX *dpix_copy3 = dpixCopy(dpix_payload);
  28. PIX *pix1 = dpixConvertToPix(dpix_copy3, 8, L_CLIP_TO_ZERO, 0);
  29. pixDestroy(&pix1);
  30. dpixDestroy(&dpix_copy3);
  31. l_float64 l_f1;
  32. l_int32 l_i1;
  33. l_int32 l_i2;
  34. DPIX *dpix_copy4 = dpixCopy(dpix_payload);
  35. dpixGetMax(dpix_copy4, &l_f1, &l_i1, &l_i2);
  36. dpixDestroy(&dpix_copy4);
  37. l_float64 l_f2;
  38. l_int32 l_i3;
  39. l_int32 l_i4;
  40. DPIX *dpix_copy5 = dpixCopy(dpix_payload);
  41. dpixGetMin(dpix_copy5, &l_f2, &l_i3, &l_i4);
  42. dpixDestroy(&dpix_copy5);
  43. DPIX *dpix1 = dpixCreate(300, 300);
  44. DPIX *dpix2 = dpixCreate(300, 300);
  45. DPIX *dpix_copy6 = dpixCopy(dpix_payload);
  46. dpixLinearCombination(dpix_copy6, dpix_copy6, dpix2, 1.1, 1.2);
  47. dpixDestroy(&dpix1);
  48. dpixDestroy(&dpix2);
  49. dpixDestroy(&dpix_copy6);
  50. DPIX *dpix_copy7 = dpixCopy(dpix_payload);
  51. DPIX *dpix3 = dpixScaleByInteger(dpix_copy7, 1);
  52. dpixDestroy(&dpix3);
  53. dpixDestroy(&dpix_copy7);
  54. DPIX *dpix_copy8 = dpixCopy(dpix_payload);
  55. dpixSetAllArbitrary(dpix_copy8, 1.1);
  56. dpixDestroy(&dpix_copy8);
  57. FPIX *fpix_copy1 = fpixCopy(fpix_payload);
  58. FPIX *fpix2 = fpixAddContinuedBorder(fpix_copy1, 1, 1, 1, 1);
  59. fpixDestroy(&fpix_copy1);
  60. fpixDestroy(&fpix2);
  61. PTA *pta1 = ptaCreate(0);
  62. PTA *pta2 = ptaCreate(0);
  63. FPIX *fpix_copy92 = fpixCopy(fpix_payload);
  64. FPIX *fpix3 = fpixAffinePta(fpix_copy92, pta1, pta2, 1, 0);
  65. fpixDestroy(&fpix3);
  66. fpixDestroy(&fpix_copy92);
  67. ptaDestroy(&pta1);
  68. ptaDestroy(&pta2);
  69. FPIX *fpix_copy2 = fpixCopy(fpix_payload);
  70. DPIX *dpix_return1 = fpixConvertToDPix(fpix_copy2);
  71. fpixDestroy(&fpix_copy2);
  72. dpixDestroy(&dpix_return1);
  73. FPIX *fpix5 = fpixCreate(300, 300);
  74. FPIX *fpix_copy3 = fpixCopy(fpix_payload);
  75. fpixLinearCombination(fpix_copy3, fpix_copy3, fpix5, 1.1, 1.1);
  76. fpixDestroy(&fpix_copy3);
  77. fpixDestroy(&fpix5);
  78. PTA *ptas, *ptad;
  79. ptas = ptaCreate(0);
  80. ptad = ptaCreate(0);
  81. FPIX *fpix_copy4 = fpixCopy(fpix_payload);
  82. FPIX *fpix_return2 = fpixProjectivePta(fpix_copy4, ptas, ptad, 200, 0.0);
  83. fpixDestroy(&fpix_return2);
  84. fpixDestroy(&fpix_copy4);
  85. ptaDestroy(&ptas);
  86. ptaDestroy(&ptad);
  87. pixDestroy(&tmp_pixs);
  88. dpixDestroy(&dpix_payload);
  89. fpixDestroy(&fpix_payload);
  90. return 0;
  91. }