From: Cristy Date: Thu, 10 Aug 2017 20:07:08 +0000 (-0400) Subject: https://github.com/ImageMagick/ImageMagick/issues/666 X-Git-Tag: 7.0.6-6~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7adfde272ffc5d0c02cfb2846fd4c001e6d5cca1;p=imagemagick https://github.com/ImageMagick/ImageMagick/issues/666 --- diff --git a/MagickCore/channel.c b/MagickCore/channel.c index 81939aa36..879afe7a7 100644 --- a/MagickCore/channel.c +++ b/MagickCore/channel.c @@ -726,9 +726,9 @@ MagickExport Image *SeparateImage(const Image *image, separate_image=DestroyImage(separate_image); return((Image *) NULL); } - (void) SetImageColorspace(separate_image,GRAYColorspace,exception); separate_image->intensity=Rec709LuminancePixelIntensityMethod; separate_image->alpha_trait=UndefinedPixelTrait; + (void) SetImageColorspace(separate_image,GRAYColorspace,exception); /* Separate image. */ diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c index 8ebaed689..f85e9de11 100644 --- a/MagickCore/xwindow.c +++ b/MagickCore/xwindow.c @@ -273,7 +273,6 @@ MagickExport void DestroyXResources(void) magick_windows[number_windows++]=(&windows->command); magick_windows[number_windows++]=(&windows->widget); magick_windows[number_windows++]=(&windows->popup); - magick_windows[number_windows++]=(&windows->context); for (i=0; i < (int) number_windows; i++) { if (magick_windows[i]->mapped != MagickFalse) diff --git a/coders/pcx.c b/coders/pcx.c index 9dec02671..e610f0b0f 100644 --- a/coders/pcx.c +++ b/coders/pcx.c @@ -1009,6 +1009,8 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image, if (pixel_info == (MemoryInfo *) NULL) { pcx_colormap=(unsigned char *) RelinquishMagickMemory(pcx_colormap); + if (page_table != (MagickOffsetType *) NULL) + page_table=(MagickOffsetType *) RelinquishMagickMemory(page_table); ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); } pixels=(unsigned char *) GetVirtualMemoryBlob(pixel_info); @@ -1096,8 +1098,8 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image, break; if (image->previous == (Image *) NULL) { - status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y, - image->rows); + status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) + y,image->rows); if (status == MagickFalse) break; } @@ -1171,7 +1173,10 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image, page_table[scene+1]=0; offset=SeekBlob(image,0L,SEEK_SET); if (offset < 0) - ThrowWriterException(CorruptImageError,"ImproperImageHeader"); + { + page_table=(MagickOffsetType *) RelinquishMagickMemory(page_table); + ThrowWriterException(CorruptImageError,"ImproperImageHeader"); + } (void) WriteBlobLSBLong(image,0x3ADE68B1L); for (i=0; i <= (ssize_t) scene; i++) (void) WriteBlobLSBLong(image,(unsigned int) page_table[i]);