diff options
author | Even Rouault <even.rouault@spatialys.com> | 2021-12-01 13:51:13 +0000 |
---|---|---|
committer | Even Rouault <even.rouault@spatialys.com> | 2021-12-01 13:51:13 +0000 |
commit | 27f399af36b78aab1ff66e614b863bd0053da9f0 (patch) | |
tree | ae0530182de368fe5b70631412ab3c49b5076cbb | |
parent | 35bc092078d2c328b1049fdfadba604ee5343f37 (diff) | |
parent | 6ffbd01d4c8fec0a7c08df4955fd2afa5f3b48c8 (diff) | |
download | libtiff-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.c | 9 |
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); |