From 3af5d736b22bafed9c1ac466f955fb4298395c5a Mon Sep 17 00:00:00 2001 From: Cristy Date: Wed, 26 Apr 2017 17:08:27 -0400 Subject: [PATCH] ... --- coders/pcd.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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)); } -- 2.50.1