Commit e69253a4 authored by guoxuedong's avatar guoxuedong Committed by GitHub

Update exif.cpp

 ExifReader::getExif may enter infinite loop with jpeg image which have no EOI.
For example, bytesToSkip may be set to 0 and fseek seems like fseek(f, -2 , SEEK_CUR) for image that end with RST7(FF D7) instead of EOI.
parent 4fd00c1a
......@@ -160,6 +160,10 @@ std::map<int, ExifEntry_t > ExifReader::getExif()
case APP9: case APP10: case APP11: case APP12: case APP13: case APP14: case APP15:
case COM:
bytesToSkip = getFieldSize( f );
if (bytesToSkip < markerSize) {
fclose(f);
throw ExifParsingError();
}
fseek( f, static_cast<long>( bytesToSkip - markerSize ), SEEK_CUR );
break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment