diff --git a/contrib/oss-fuzz/libpng_read_fuzzer.cc b/contrib/oss-fuzz/libpng_read_fuzzer.cc index f373bf77b..417ce4013 100644 --- a/contrib/oss-fuzz/libpng_read_fuzzer.cc +++ b/contrib/oss-fuzz/libpng_read_fuzzer.cc @@ -26,6 +26,8 @@ #define PNG_CLEANUP \ if(png_handler.png_ptr) \ { \ + if (row_ptr && png_ptr) \ + png_free(png_ptr, row_ptr); \ if (png_handler.end_info_ptr) \ png_destroy_read_struct(&png_handler.png_ptr, &png_handler.info_ptr,\ &png_handler.end_info_ptr); \ @@ -49,9 +51,6 @@ struct PngObjectHandler { BufState* buf_state = nullptr; ~PngObjectHandler() { - if (row_ptr && png_ptr) { - png_free(png_ptr, row_ptr); - } PNG_CLEANUP delete buf_state; }