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))
     {