]> granicus.if.org Git - imagemagick/commitdiff
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7633
authorCristy <urban-warrior@imagemagick.org>
Fri, 13 Apr 2018 00:20:34 +0000 (20:20 -0400)
committerCristy <urban-warrior@imagemagick.org>
Fri, 13 Apr 2018 00:20:34 +0000 (20:20 -0400)
MagickCore/draw.c

index b8884bf59e2cd04a4161434657d062eb96176eed..2f9af29a8d7e41bffd374ed5143c2d6b5fc9d95b 100644 (file)
@@ -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;