From 218d6abc4e36596c90a07463bfb2ab9e8312efbb Mon Sep 17 00:00:00 2001 From: Dirk Lemstra Date: Sat, 13 Jun 2020 18:00:50 +0200 Subject: [PATCH] Check the type of the field before performing the multiplication. --- coders/tiff.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/coders/tiff.c b/coders/tiff.c index 61858c3cc..25a939811 100644 --- a/coders/tiff.c +++ b/coders/tiff.c @@ -638,9 +638,16 @@ static MagickBooleanType TIFFGetProfiles(TIFF *tiff,Image *image) if ((TIFFGetField(tiff,TIFFTAG_RICHTIFFIPTC,&length,&profile) == 1) && (profile != (unsigned char *) NULL)) { + const TIFFField + *field; + if (TIFFIsByteSwapped(tiff) != 0) TIFFSwabArrayOfLong((uint32 *) profile,(size_t) length); - status=ReadProfile(image,"iptc",profile,4L*length); + field=TIFFFieldWithTag(tiff,TIFFTAG_RICHTIFFIPTC); + if (TIFFFieldDataType(field) == TIFF_LONG) + status=ReadProfile(image,"iptc",profile,4L*length); + else + status=ReadProfile(image,"iptc",profile,length); } #endif #if defined(TIFFTAG_XMLPACKET)