From 198f23890eefc230419415a139e2c11bed123f8b Mon Sep 17 00:00:00 2001 From: Alexander Smorkalov Date: Wed, 8 Jan 2025 13:28:28 +0300 Subject: [PATCH] Fixed fread size check for corrupted PNGs. --- modules/imgcodecs/src/grfmt_png.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/modules/imgcodecs/src/grfmt_png.cpp b/modules/imgcodecs/src/grfmt_png.cpp index 509ce13cdf..6b4cea405c 100644 --- a/modules/imgcodecs/src/grfmt_png.cpp +++ b/modules/imgcodecs/src/grfmt_png.cpp @@ -253,18 +253,12 @@ bool PngDecoder::readHeader() return false; } png_init_io(png_ptr, m_f); - - if (fread(sig, 1, 8, m_f)) - id = read_chunk(m_chunkIHDR); } - if (id != id_IHDR) - { - if (read_from_io(&sig, 8, 1) != 1) - return false; - id = read_chunk(m_chunkIHDR); - } + if (read_from_io(&sig, 8, 1) != 1) + return false; + id = read_chunk(m_chunkIHDR); if (!(id == id_IHDR && m_chunkIHDR.p.size() == 25)) { return false;