20 lines
907 B
Diff
20 lines
907 B
Diff
diff -rupN --no-dereference freeimage-svn-r1909-FreeImage-trunk/Source/Metadata/Exif.cpp freeimage-svn-r1909-FreeImage-trunk-new/Source/Metadata/Exif.cpp
|
|
--- freeimage-svn-r1909-FreeImage-trunk/Source/Metadata/Exif.cpp 2023-09-28 19:34:45.003036859 +0200
|
|
+++ freeimage-svn-r1909-FreeImage-trunk-new/Source/Metadata/Exif.cpp 2023-09-28 19:34:47.505011926 +0200
|
|
@@ -770,8 +770,13 @@ jpeg_read_exif_dir(FIBITMAP *dib, const
|
|
//
|
|
|
|
const WORD entriesCount0th = ReadUint16(msb_order, ifd0th);
|
|
-
|
|
- DWORD next_offset = ReadUint32(msb_order, DIR_ENTRY_ADDR(ifd0th, entriesCount0th));
|
|
+
|
|
+ const BYTE* de_addr = DIR_ENTRY_ADDR(ifd0th, entriesCount0th);
|
|
+ if(de_addr+4 >= (BYTE*)(dwLength + ifd0th - tiffp)) {
|
|
+ return TRUE; //< no thumbnail
|
|
+ }
|
|
+
|
|
+ DWORD next_offset = ReadUint32(msb_order, de_addr);
|
|
if((next_offset == 0) || (next_offset >= dwLength)) {
|
|
return TRUE; //< no thumbnail
|
|
}
|