]> granicus.if.org Git - imagemagick/commitdiff
Fixed reading uninitialised memory.
authorDirk Lemstra <dirk@git.imagemagick.org>
Fri, 16 Mar 2018 11:35:40 +0000 (12:35 +0100)
committerDirk Lemstra <dirk@git.imagemagick.org>
Fri, 16 Mar 2018 11:35:40 +0000 (12:35 +0100)
coders/pcd.c

index b990952e1c29820887d3f10145e4289f35b591e5..da8534859d823398088ec8fc6893fb21b851eede 100644 (file)
@@ -537,9 +537,13 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception)
   if (header == (unsigned char *) NULL)
     ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
   count=ReadBlob(image,3*0x800,header);
+  if (count != (3*0x800))
+    {
+      header=(unsigned char *) RelinquishMagickMemory(header);
+      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+    }
   overview=LocaleNCompare((char *) header,"PCD_OPA",7) == 0;
-  if ((count != (3*0x800)) ||
-      ((LocaleNCompare((char *) header+0x800,"PCD",3) != 0) && (overview ==0)))
+  if ((LocaleNCompare((char *) header+0x800,"PCD",3) != 0) && (overview == 0))
     {
       header=(unsigned char *) RelinquishMagickMemory(header);
       ThrowReaderException(CorruptImageError,"ImproperImageHeader");