summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2021-12-01 13:51:13 +0000
committerEven Rouault <even.rouault@spatialys.com>2021-12-01 13:51:13 +0000
commit27f399af36b78aab1ff66e614b863bd0053da9f0 (patch)
treeae0530182de368fe5b70631412ab3c49b5076cbb
parent35bc092078d2c328b1049fdfadba604ee5343f37 (diff)
parent6ffbd01d4c8fec0a7c08df4955fd2afa5f3b48c8 (diff)
downloadlibtiff-git-27f399af36b78aab1ff66e614b863bd0053da9f0.tar.gz
Merge branch 'fix_316' into 'master'
TIFFReadCustomDirectory(): avoid crash when reading SubjectDistance tag on a non EXIF directory Closes #316 See merge request libtiff/libtiff!273
-rw-r--r--libtiff/tif_dirread.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libtiff/tif_dirread.c b/libtiff/tif_dirread.c
index d84147a0..8f434ef5 100644
--- a/libtiff/tif_dirread.c
+++ b/libtiff/tif_dirread.c
@@ -4527,7 +4527,14 @@ TIFFReadCustomDirectory(TIFF* tif, toff_t diroff,
switch (dp->tdir_tag)
{
case EXIFTAG_SUBJECTDISTANCE:
- (void)TIFFFetchSubjectDistance(tif, dp);
+ if( strncmp(fip->field_name, "Tag ", 4) != 0 ) {
+ /* should only be called on a Exif directory */
+ /* when exifFields[] is active */
+ (void)TIFFFetchSubjectDistance(tif, dp);
+ }
+ else {
+ (void)TIFFFetchNormalTag(tif, dp, TRUE);
+ }
break;
default:
(void)TIFFFetchNormalTag(tif, dp, TRUE);