From f69b586275fc4d5b5d7ca62374e085b3865d8ddd Mon Sep 17 00:00:00 2001 From: Cristy Date: Wed, 25 Apr 2018 19:16:13 -0400 Subject: [PATCH] https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7994 --- MagickCore/draw.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/MagickCore/draw.c b/MagickCore/draw.c index 8400f3d04..3ca156e9e 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -2852,8 +2852,8 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info, status=MagickFalse; break; } - (void) memset(graphic_context[n]->dash_pattern,0,(2UL*x+2UL)* - sizeof(*graphic_context[n]->dash_pattern)); + (void) memset(graphic_context[n]->dash_pattern,0,(size_t) + (2UL*x+2UL)*sizeof(*graphic_context[n]->dash_pattern)); for (j=0; j < x; j++) { GetNextToken(q,&q,extent,token); @@ -3246,13 +3246,24 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info, } case CirclePrimitive: { + double + alpha, + beta, + radius; + PointInfo + offset, degrees; + alpha=primitive_info[j+1].point.x-primitive_info[j].point.x; + beta=primitive_info[j+1].point.y-primitive_info[j].point.y; + radius=hypot((double) alpha,(double) beta); + offset.x=(double) radius; + offset.y=(double) radius; degrees.x=0.0; degrees.y=360.0; - coordinates=GetEllipseCoordinates(primitive_info[j].point, - primitive_info[j+1].point,degrees); + coordinates=GetEllipseCoordinates(primitive_info[j].point,offset, + degrees); break; } case ArcPrimitive: -- 2.40.0