1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-29 15:23:05 +04:00

Merge pull request #25864 from vrabaud:legacy

Make sure all the lines of a JPEG are read #25864

In case of corrupted JPEG, imread would still return a JPEG of the proper size (as indicated by the header) but with some uninitialized values. I do not have a short reproducer I can add as a test as this was found by our fuzzers.

### Pull Request Readiness Checklist

See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request

- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
This commit is contained in:
Vincent Rabaud
2024-07-05 07:53:28 +02:00
committed by GitHub
parent 94b7a2d320
commit dfbd18e9aa
+2 -2
View File
@@ -499,7 +499,7 @@ bool JpegDecoder::readData( Mat& img )
for( int iy = 0 ; iy < m_height; iy ++ )
{
uchar* data = img.ptr<uchar>(iy);
jpeg_read_scanlines( cinfo, &data, 1 );
if (jpeg_read_scanlines( cinfo, &data, 1 ) != 1) return false;
}
}
else
@@ -510,7 +510,7 @@ bool JpegDecoder::readData( Mat& img )
for( int iy = 0 ; iy < m_height; iy ++ )
{
uchar* data = img.ptr<uchar>(iy);
jpeg_read_scanlines( cinfo, buffer, 1 );
if (jpeg_read_scanlines( cinfo, buffer, 1 ) != 1) return false;
if( color )
{