Commit 271ec7413 for imagemagick.org
commit 271ec741384c6c135238ff64aa3307174cd14afe
Author: Dirk Lemstra <dirk@lemstra.org>
Date: Sun May 31 16:10:58 2026 +0200
Added extra checks for the width and height.
diff --git a/coders/svg.c b/coders/svg.c
index 586ef8ed8..3bf9f4477 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -463,6 +463,11 @@ static Image *RenderRSVGImage(const ImageInfo *image_info,Image *image,
#if defined(MAGICKCORE_CAIRO_DELEGATE)
apply_density=MagickTrue;
rsvg_handle_get_dimensions(svg_handle,&dimension_info);
+ if ((dimension_info.width == 0) || (dimension_info.height == 0))
+ {
+ g_object_unref(svg_handle);
+ ThrowReaderException(CorruptImageError,"NegativeOrZeroImageSize");
+ }
if ((image->resolution.x > 0.0) && (image->resolution.y > 0.0))
{
RsvgDimensionData
@@ -487,10 +492,10 @@ static Image *RenderRSVGImage(const ImageInfo *image_info,Image *image,
&image->columns,&image->rows);
if ((image->columns != 0) || (image->rows != 0))
{
- image->resolution.x=DefaultSVGDensity*image->columns/
- dimension_info.width;
- image->resolution.y=DefaultSVGDensity*image->rows/
- dimension_info.height;
+ image->resolution.x=dimension_info.width > 0 ?
+ DefaultSVGDensity*image->columns/dimension_info.width : 0.0;
+ image->resolution.y=dimension_info.height > 0 ?
+ DefaultSVGDensity*image->rows/dimension_info.height : 0.0;
if (fabs(image->resolution.x) < MagickEpsilon)
image->resolution.x=image->resolution.y;
else