]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/809
authorCristy <urban-warrior@imagemagick.org>
Sat, 30 Sep 2017 14:38:44 +0000 (10:38 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sat, 30 Sep 2017 14:38:44 +0000 (10:38 -0400)
coders/pcd.c

index 9cb33d60d6aa6d49667b46cffab7cead164d7a5a..4982f9ff020c514fe8017299e61449e6655a8bbc 100644 (file)
@@ -605,7 +605,15 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception)
     10*sizeof(*luma));
   if ((chroma1 == (unsigned char *) NULL) ||
       (chroma2 == (unsigned char *) NULL) || (luma == (unsigned char *) NULL))
-    ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+    {
+      if (chroma1 != (unsigned char *) NULL)
+        chroma1=(unsigned char *) RelinquishMagickMemory(chroma1);
+      if (chroma2 != (unsigned char *) NULL)
+        chroma2=(unsigned char *) RelinquishMagickMemory(chroma2);
+      if (luma != (unsigned char *) NULL)
+        luma=(unsigned char *) RelinquishMagickMemory(luma);
+      ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
+    }
   /*
     Advance to image data.
   */