Commit b41a6bc92 for imagemagick.org
commit b41a6bc92ac778e0459ce500e9d64fb361e29fd5
Author: Cristy <urban-warrior@imagemagick.org>
Date: Tue Sep 29 10:54:43 2026 -0400
https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-v9q4-cm37-q2jm
diff --git a/coders/png.c b/coders/png.c
index 04e1c7222..e55d7cefe 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -12371,7 +12371,10 @@ static MagickBooleanType WriteOneJNGImage(MngWriteInfo *mng_info,
jpeg_image=SeparateImage(image,AlphaChannel,exception);
if (jpeg_image == (Image *) NULL)
- ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+ {
+ jpeg_image_info=DestroyImageInfo(jpeg_image_info);
+ ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+ }
(void) CopyMagickString(jpeg_image->magick,"JPEG",MagickPathExtent);
jpeg_image->alpha_trait=UndefinedPixelTrait;
jpeg_image->quality=jng_alpha_quality;
@@ -12421,12 +12424,15 @@ static MagickBooleanType WriteOneJNGImage(MngWriteInfo *mng_info,
{
const char
*value;
-
/* Encode alpha as a grayscale PNG blob */
status=OpenBlob(jpeg_image_info,jpeg_image,WriteBinaryBlobMode,
exception);
if (status == MagickFalse)
- ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+ {
+ jpeg_image=DestroyImage(jpeg_image);
+ jpeg_image_info=DestroyImageInfo(jpeg_image_info);
+ ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+ }
if (logging != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -12462,7 +12468,11 @@ static MagickBooleanType WriteOneJNGImage(MngWriteInfo *mng_info,
status=OpenBlob(jpeg_image_info,jpeg_image,WriteBinaryBlobMode,
exception);
if (status == MagickFalse)
- ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+ {
+ jpeg_image=DestroyImage(jpeg_image);
+ jpeg_image_info=DestroyImageInfo(jpeg_image_info);
+ ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
+ }
(void) CopyMagickString(jpeg_image_info->magick,"JPEG",
MagickPathExtent);