From: Cristy Date: Wed, 26 Apr 2017 21:08:27 +0000 (-0400) Subject: ... X-Git-Tag: 7.0.5-6~49 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3af5d736b22bafed9c1ac466f955fb4298395c5a;p=imagemagick ... --- diff --git a/coders/pcd.c b/coders/pcd.c index c049f9144..9cb33d60d 100644 --- a/coders/pcd.c +++ b/coders/pcd.c @@ -540,12 +540,15 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception) overview=LocaleNCompare((char *) header,"PCD_OPA",7) == 0; if ((count != (3*0x800)) || ((LocaleNCompare((char *) header+0x800,"PCD",3) != 0) && (overview ==0))) - ThrowReaderException(CorruptImageError,"ImproperImageHeader"); + { + header=(unsigned char *) RelinquishMagickMemory(header); + ThrowReaderException(CorruptImageError,"ImproperImageHeader"); + } rotate=header[0x0e02] & 0x03; number_images=(header[10] << 8) | header[11]; + header=(unsigned char *) RelinquishMagickMemory(header); if (number_images > 65535) ThrowReaderException(CorruptImageError,"ImproperImageHeader"); - header=(unsigned char *) RelinquishMagickMemory(header); /* Determine resolution by scene specification. */ @@ -682,7 +685,7 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception) } image->colorspace=YCCColorspace; if (LocaleCompare(image_info->magick,"PCDS") == 0) - SetImageColorspace(image,sRGBColorspace,exception); + (void) SetImageColorspace(image,sRGBColorspace,exception); if (j < (ssize_t) number_images) { /* @@ -836,7 +839,7 @@ static Image *ReadPCDImage(const ImageInfo *image_info,ExceptionInfo *exception) image->gamma=1.000f/2.200f; image->colorspace=YCCColorspace; if (LocaleCompare(image_info->magick,"PCDS") == 0) - SetImageColorspace(image,sRGBColorspace,exception); + (void) SetImageColorspace(image,sRGBColorspace,exception); return(GetFirstImageInList(image)); }