]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/714
authorCristy <urban-warrior@imagemagick.org>
Thu, 31 Aug 2017 14:26:28 +0000 (10:26 -0400)
committerCristy <urban-warrior@imagemagick.org>
Thu, 31 Aug 2017 14:26:28 +0000 (10:26 -0400)
coders/psd.c

index 270d73fd6189756d3839d8c0a2e54673cd55c7ba..a29f6ac3ee12d87dc4478f95fdee671393bdb119 100644 (file)
@@ -1708,6 +1708,12 @@ static MagickBooleanType ReadPSDLayersInternal(Image *image,
                 {
                   size_t blend_source=ReadBlobLong(image);
                   size_t blend_dest=ReadBlobLong(image);
+                  if (EOFBlob(image) != MagickFalse)
+                    {
+                      layer_info=DestroyLayerInfo(layer_info,number_layers);
+                      ThrowBinaryException(CorruptImageError,
+                        "InsufficientImageDataInFile",image->filename);
+                    }
                   if (image->debug != MagickFalse)
                     (void) LogMagickEvent(CoderEvent,GetMagickModule(),
                       "        source(%x), dest(%x)",(unsigned int)
@@ -1758,8 +1764,7 @@ static MagickBooleanType ReadPSDLayersInternal(Image *image,
 
       for (i=0; i < number_layers; i++)
       {
-        if ((layer_info[i].page.width == 0) ||
-              (layer_info[i].page.height == 0))
+        if ((layer_info[i].page.width == 0) || (layer_info[i].page.height == 0))
           {
             if (image->debug != MagickFalse)
               (void) LogMagickEvent(CoderEvent,GetMagickModule(),