]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/666
authorCristy <urban-warrior@imagemagick.org>
Thu, 10 Aug 2017 20:07:08 +0000 (16:07 -0400)
committerCristy <urban-warrior@imagemagick.org>
Thu, 10 Aug 2017 20:07:08 +0000 (16:07 -0400)
MagickCore/channel.c
MagickCore/xwindow.c
coders/pcx.c

index 81939aa363f5db76de480589bf147ff89e336052..879afe7a711fbe369397632b143900742f72dbe4 100644 (file)
@@ -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.
   */
index 8ebaed689fa4a2c457d316127e35d5ec41f43999..f85e9de112b47ef87facf19b18f633b95dbf4e00 100644 (file)
@@ -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)
index 9dec02671a53331cde87fbf7fe2ea37a0712290d..e610f0b0f44fa2c91e65094c00fe1cb076468993 100644 (file)
@@ -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]);