a55f36211e
We parse the EXIF header in order to get the proper orientation, so let's be a bit more careful in what we accept. This patch adds better handling for reading past the end of the stream, plus it limits the number of IFDs read (to avoid processing too much data) and deals with a pathological case of the EXIF file format: EXIF (due to its TIFF origins) permits the offset to the next IFD to be backwards in the file, which means it could result in a loop or pointing to plain corrupt data. We disallow any backwards pointers, since it seems that's what other decoders do (libexif, for example). Change-Id: Iaeecaffe26af4535b416fffd1489332db92e3888 (cherry picked from 5.6 commit 02150649f95b8f46f826e6e002be3fa0b6d009bc) Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> |
||
---|---|---|
.. | ||
image.bmp | ||
image.gif | ||
image.ico | ||
image.jpg | ||
image.pbm | ||
image.pgm | ||
image.png | ||
image.ppm | ||
image.xbm | ||
image.xpm | ||
jpeg_exif_invalid_data_back_pointers.jpg | ||
jpeg_exif_invalid_data_past_end.jpg | ||
jpeg_exif_invalid_data_QTBUG-46870.jpg | ||
jpeg_exif_invalid_data_too_many_ifds.jpg | ||
jpeg_exif_invalid_data_too_many_tags.jpg | ||
jpeg_exif_orientation_value_1.jpg | ||
jpeg_exif_orientation_value_2.jpg | ||
jpeg_exif_orientation_value_3.jpg | ||
jpeg_exif_orientation_value_4.jpg | ||
jpeg_exif_orientation_value_5.jpg | ||
jpeg_exif_orientation_value_6_motorola.jpg | ||
jpeg_exif_orientation_value_6.jpg | ||
jpeg_exif_orientation_value_7.jpg | ||
jpeg_exif_orientation_value_8.jpg | ||
jpeg_exif_QTBUG-45865.jpg |