Commit 1a51eb9af for imagemagick.org
commit 1a51eb9af00c36724660e294520878fd1f13e312
Author: Cristy <urban-warrior@imagemagick.org>
Date: Sat Feb 7 22:30:57 2026 -0500
https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-v7g2-m8c5-mf84
diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index 62258c20f..3496f7c9b 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -2301,7 +2301,7 @@ static MagickBooleanType CheckPrimitiveExtent(MVGInfo *mvg_info,
extent=(double) mvg_info->offset+pad+(PrimitiveExtentPad+1)*(double) quantum;
if (extent <= (double) *mvg_info->extent)
return(MagickTrue);
- if ((extent >= (double) MAGICK_SSIZE_MAX) || (IsNaN(extent) != 0))
+ if ((extent >= (double) GetMaxMemoryRequest()) || (IsNaN(extent) != 0))
return(MagickFalse);
if (mvg_info->offset > 0)
{
@@ -6406,7 +6406,7 @@ static MagickBooleanType TraceBezier(MVGInfo *mvg_info,
for (j=i+1; j < (ssize_t) number_coordinates; j++)
{
alpha=fabs(primitive_info[j].point.x-primitive_info[i].point.x);
- if (alpha > (double) MAGICK_SSIZE_MAX)
+ if (alpha > (double) GetMaxMemoryRequest())
{
(void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
ResourceLimitError,"MemoryAllocationFailed","`%s'","");
@@ -6415,18 +6415,18 @@ static MagickBooleanType TraceBezier(MVGInfo *mvg_info,
if (alpha > (double) quantum)
quantum=(size_t) alpha;
alpha=fabs(primitive_info[j].point.y-primitive_info[i].point.y);
- if (alpha > (double) MAGICK_SSIZE_MAX)
- {
- (void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
- ResourceLimitError,"MemoryAllocationFailed","`%s'","");
- return(MagickFalse);
- }
if (alpha > (double) quantum)
quantum=(size_t) alpha;
}
}
primitive_info=(*mvg_info->primitive_info)+mvg_info->offset;
quantum=MagickMin(quantum/number_coordinates,BezierQuantum);
+ if (quantum > (double) GetMaxMemoryRequest())
+ {
+ (void) ThrowMagickException(mvg_info->exception,GetMagickModule(),
+ ResourceLimitError,"MemoryAllocationFailed","`%s'","");
+ return(MagickFalse);
+ }
coefficients=(double *) AcquireQuantumMemory(number_coordinates,
sizeof(*coefficients));
points=(PointInfo *) AcquireQuantumMemory(quantum,number_coordinates*