From: Cristy Date: Fri, 13 Apr 2018 00:20:34 +0000 (-0400) Subject: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7633 X-Git-Tag: 7.0.7-29~126 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=91be6322d572f1d2798ae308d86749a403559171;p=imagemagick https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7633 --- diff --git a/MagickCore/draw.c b/MagickCore/draw.c index b8884bf59..2f9af29a8 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -1571,8 +1571,7 @@ static MagickBooleanType DrawDashPolygon(const DrawInfo *draw_info, dx=primitive_info[i].point.x-primitive_info[i-1].point.x; dy=primitive_info[i].point.y-primitive_info[i-1].point.y; maximum_length=hypot(dx,dy); - if ((fabs(maximum_length) < DrawEpsilon) || - (maximum_length > MaxBezierCoordinates)) + if (maximum_length > MaxBezierCoordinates) break; if (fabs(length) < DrawEpsilon) { @@ -1588,9 +1587,9 @@ static MagickBooleanType DrawDashPolygon(const DrawInfo *draw_info, { dash_polygon[0]=primitive_info[0]; dash_polygon[0].point.x=(double) (primitive_info[i-1].point.x+dx* - total_length/maximum_length); + total_length*PerceptibleReciprocal(maximum_length)); dash_polygon[0].point.y=(double) (primitive_info[i-1].point.y+dy* - total_length/maximum_length); + total_length*PerceptibleReciprocal(maximum_length)); j=1; } else @@ -1599,9 +1598,9 @@ static MagickBooleanType DrawDashPolygon(const DrawInfo *draw_info, break; dash_polygon[j]=primitive_info[i-1]; dash_polygon[j].point.x=(double) (primitive_info[i-1].point.x+dx* - total_length/maximum_length); + total_length*PerceptibleReciprocal(maximum_length)); dash_polygon[j].point.y=(double) (primitive_info[i-1].point.y+dy* - total_length/maximum_length); + total_length*PerceptibleReciprocal(maximum_length)); dash_polygon[j].coordinates=1; j++; dash_polygon[0].coordinates=(size_t) j;