From: Cristy Date: Thu, 31 Aug 2017 14:26:28 +0000 (-0400) Subject: https://github.com/ImageMagick/ImageMagick/issues/714 X-Git-Tag: 7.0.7-0~28 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=13663fd5798bbad267eae51a08da2dc8d40ef62b;p=imagemagick https://github.com/ImageMagick/ImageMagick/issues/714 --- diff --git a/coders/psd.c b/coders/psd.c index 270d73fd6..a29f6ac3e 100644 --- a/coders/psd.c +++ b/coders/psd.c @@ -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(),