From 993638f73faf45627d9436de77fa7e1ae91413b5 Mon Sep 17 00:00:00 2001 From: Mikhail Khachayants Date: Tue, 2 Jul 2024 23:27:27 +0300 Subject: [PATCH] oss-fuzz: Add fuzzing targets for simplified READ API New target added to libpng_read_fuzzer.cc for simplified READ API. --- contrib/oss-fuzz/libpng_read_fuzzer.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/contrib/oss-fuzz/libpng_read_fuzzer.cc b/contrib/oss-fuzz/libpng_read_fuzzer.cc index 0190cf7865..ad9f9adc6a 100644 --- a/contrib/oss-fuzz/libpng_read_fuzzer.cc +++ b/contrib/oss-fuzz/libpng_read_fuzzer.cc @@ -204,5 +204,21 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { png_read_end(png_handler.png_ptr, png_handler.end_info_ptr); PNG_CLEANUP + +#ifdef PNG_SIMPLIFIED_READ_SUPPORTED + // Simplified READ API + png_image image; + memset(&image, 0, (sizeof image)); + image.version = PNG_IMAGE_VERSION; + + if (!png_image_begin_read_from_memory(&image, data, size)) { + return 0; + } + + image.format = PNG_FORMAT_RGBA; + std::vector buffer(PNG_IMAGE_SIZE(image)); + png_image_finish_read(&image, NULL, buffer.data(), 0, NULL); +#endif + return 0; }