Merge pull request #26700 from vrabaud:png_buffer_overflow

Fix heap buffer overflow in cv::PngDecoder::read_from_io
This commit is contained in:
Alexander Smorkalov 2025-01-03 10:39:23 +03:00 committed by GitHub
commit 5e1eed5026
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -655,7 +655,7 @@ size_t PngDecoder::read_from_io(void* _Buffer, size_t _ElementSize, size_t _Elem
if (m_f)
return fread(_Buffer, _ElementSize, _ElementCount, m_f);
if (m_buf_pos > m_buf.cols * m_buf.rows * m_buf.elemSize())
if (m_buf_pos + _ElementSize > m_buf.cols * m_buf.rows * m_buf.elemSize())
CV_Error(Error::StsInternal, "PNG input buffer is incomplete");
memcpy( _Buffer, m_buf.ptr() + m_buf_pos, _ElementSize );