From 80df9ddedb0d4f7c3d401ebbd8663300c4c35157 Mon Sep 17 00:00:00 2001 From: jiakai Date: Thu, 5 Nov 2015 18:32:51 +0800 Subject: [PATCH] check for exifSize --- modules/imgcodecs/src/jpeg_exif.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/imgcodecs/src/jpeg_exif.cpp b/modules/imgcodecs/src/jpeg_exif.cpp index 142a079f0e..af4b7a9908 100644 --- a/modules/imgcodecs/src/jpeg_exif.cpp +++ b/modules/imgcodecs/src/jpeg_exif.cpp @@ -158,6 +158,9 @@ std::map ExifReader::getExif() case APP1: //actual Exif Marker exifSize = getFieldSize(f); + if (exifSize <= offsetToTiffHeader) { + throw ExifParsingError(); + } m_data.resize( exifSize - offsetToTiffHeader ); fseek(f, static_cast( offsetToTiffHeader ), SEEK_CUR); count = fread( &m_data[0], sizeof( unsigned char ), exifSize - offsetToTiffHeader, f );