From: Cristy Date: Wed, 25 Apr 2018 23:16:13 +0000 (-0400) Subject: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7994 X-Git-Tag: 7.0.7-29~40 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f69b586275fc4d5b5d7ca62374e085b3865d8ddd;p=imagemagick https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7994 --- 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: