Commit 4dd72bed5 for imagemagick.org
commit 4dd72bed575de5093244e2ab17d704cd26144323
Author: Cristy <urban-warrior@imagemagick.org>
Date: Tue Nov 10 14:58:07 2026 -0500
https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-rm4h-gcc3-55wx
diff --git a/MagickCore/constitute.c b/MagickCore/constitute.c
index 4d6f4d532..9ce54c536 100644
--- a/MagickCore/constitute.c
+++ b/MagickCore/constitute.c
@@ -805,12 +805,15 @@ static Image *ReadImageInternal(const ImageInfo *image_info,
read_info=DestroyImageInfo(read_info);
return(image);
}
- if (exception->severity >= ErrorException)
- (void) LogMagickEvent(ExceptionEvent,GetMagickModule(),
- "Coder (%s) generated an image despite an error (%d), "
- "notify the developers",image->magick,exception->severity);
if (IsBlobTemporary(image) != MagickFalse)
(void) RelinquishUniqueFileResource(read_info->filename);
+ if (exception->severity >= ErrorException)
+ {
+ (void) LogMagickEvent(ExceptionEvent,GetMagickModule(),
+ "Coder (%s) generated an image despite an error (%d), "
+ "notify the developers",image->magick,exception->severity);
+ return(DestroyImageList(image));
+ }
if (read_info->ping != MagickFalse)
{
for (next=image; next != (Image *) NULL; next=GetNextImageInList(next))
diff --git a/coders/fits.c b/coders/fits.c
index 6bdf97426..3819bf5dc 100644
--- a/coders/fits.c
+++ b/coders/fits.c
@@ -458,8 +458,12 @@ static Image *ReadFITSImage(const ImageInfo *image_info,
comment=DestroyString(comment);
}
if (EOFBlob(image) != MagickFalse)
- ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
- image->filename);
+ {
+ ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+ image->filename);
+ status=MagickFalse;
+ break;
+ }
number_pixels=((MagickSizeType) fits_info.columns*fits_info.rows);
if ((fits_info.simple == MagickFalse) || (fits_info.number_axes < 1) ||
(fits_info.number_axes > 4) || (number_pixels == 0) ||
@@ -540,6 +544,7 @@ static Image *ReadFITSImage(const ImageInfo *image_info,
{
ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
image->filename);
+ status=MagickFalse;
break;
}
/*
@@ -575,6 +580,7 @@ static Image *ReadFITSImage(const ImageInfo *image_info,
{
ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
image->filename);
+ status=MagickFalse;
break;
}
/*
diff --git a/coders/pgx.c b/coders/pgx.c
index 896834c6c..b5fc9316e 100644
--- a/coders/pgx.c
+++ b/coders/pgx.c
@@ -236,8 +236,11 @@ static Image *ReadPGXImage(const ImageInfo *image_info,ExceptionInfo *exception)
SetQuantumImageType(image,GrayQuantum);
quantum_info=DestroyQuantumInfo(quantum_info);
if (EOFBlob(image) != MagickFalse)
- ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
- image->filename);
+ {
+ ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+ image->filename);
+ status=MagickFalse;
+ }
if (CloseBlob(image) == MagickFalse)
status=MagickFalse;
if (status == MagickFalse)