summaryrefslogtreecommitdiffstats
path: root/218d6abc4e36596c90a07463bfb2ab9e8312efbb.patch
blob: cedecca21019559c10b5709e7421e5530d6f12be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
From 218d6abc4e36596c90a07463bfb2ab9e8312efbb Mon Sep 17 00:00:00 2001
From: Dirk Lemstra <dirk@lemstra.org>
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)