File ImageMagick-CVE-2026-25985.patch of Package ImageMagick.42997
From 1a51eb9af00c36724660e294520878fd1f13e312 Mon Sep 17 00:00:00 2001
From: Cristy <urban-warrior@imagemagick.org>
Date: Sat, 7 Feb 2026 22:30:57 -0500
Subject: [PATCH]
https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-v7g2-m8c5-mf84
---
MagickCore/draw.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
Index: ImageMagick-7.1.1-21/MagickCore/draw.c
===================================================================
--- ImageMagick-7.1.1-21.orig/MagickCore/draw.c
+++ ImageMagick-7.1.1-21/MagickCore/draw.c
@@ -2290,7 +2290,7 @@ static MagickBooleanType CheckPrimitiveE
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)
{
@@ -6398,7 +6398,7 @@ static MagickBooleanType TraceBezier(MVG
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'","");
@@ -6407,18 +6407,18 @@ static MagickBooleanType TraceBezier(MVG
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*