Commit 3882fd711 for imagemagick.org
commit 3882fd7116e0794a05457f78da80cd39f83b52c3
Author: Cristy <urban-warrior@imagemagick.org>
Date: Mon Sep 28 22:15:50 2026 -0400
https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-7438-vh5v-v52h
diff --git a/MagickCore/attribute.c b/MagickCore/attribute.c
index c4e106174..93ab6de83 100644
--- a/MagickCore/attribute.c
+++ b/MagickCore/attribute.c
@@ -800,10 +800,23 @@ MagickExport PointInfo *GetImageConvexHull(const Image *image,
if (IsEventLogging() != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
*number_vertices=0;
+ if (HeapOverflowSanityCheck(image->columns,image->rows*sizeof(*vertices)) != MagickFalse)
+ {
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename);
+ return((PointInfo *) NULL);
+ }
vertices_info=AcquireVirtualMemory(image->columns,image->rows*
sizeof(*vertices));
- monotone_info=AcquireVirtualMemory(2*image->columns,2*
- image->rows*sizeof(*monotone_chain));
+ if (HeapOverflowSanityCheck(2*image->columns,2*image->rows*sizeof(*monotone_chain)) != MagickFalse)
+ {
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ ResourceLimitError,"MemoryAllocationFailed","`%s'",image->filename);
+ vertices_info=RelinquishVirtualMemory(vertices_info);
+ return((PointInfo *) NULL);
+ }
+ monotone_info=AcquireVirtualMemory(2*image->columns,2*image->rows*
+ sizeof(*monotone_chain));
if ((vertices_info == (MemoryInfo *) NULL) ||
(monotone_info == (MemoryInfo *) NULL))
{