From: Cristy Date: Fri, 16 Mar 2018 13:26:50 +0000 (-0400) Subject: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6952 X-Git-Tag: 7.0.7-27~39 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9e497f1fa02c47eaab8ef1f694f3e40f41486fc0;p=imagemagick https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6952 --- diff --git a/MagickCore/draw.c b/MagickCore/draw.c index 2120f479c..fd87bb20a 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -1676,12 +1676,14 @@ static size_t EllipsePoints(const PrimitiveInfo *primitive_info, /* Ellipses are just short segmented polys. */ - if ((fabs(stop.x) < DrawEpsilon) || (fabs(stop.y) < DrawEpsilon)) + if ((fabs(stop.x) < DrawEpsilon) && (fabs(stop.y) < DrawEpsilon)) return(1); delta=2.0/MagickMax(stop.x,stop.y); step=MagickPI/8.0; if ((delta >= 0.0) && (delta < (MagickPI/8.0))) step=MagickPI/(4*(MagickPI/delta/2+0.5)); + if (step < 0.0000001) + step=0.0000001; angle.x=DegreesToRadians(degrees.x); y=degrees.y; while (y < degrees.x) @@ -5498,7 +5500,7 @@ static void TraceEllipse(PrimitiveInfo *primitive_info,const PointInfo start, /* Ellipses are just short segmented polys. */ - if ((fabs(stop.x) < DrawEpsilon) || (fabs(stop.y) < DrawEpsilon)) + if ((fabs(stop.x) < DrawEpsilon) && (fabs(stop.y) < DrawEpsilon)) { TracePoint(primitive_info,start); return; @@ -5507,6 +5509,8 @@ static void TraceEllipse(PrimitiveInfo *primitive_info,const PointInfo start, step=MagickPI/8.0; if ((delta >= 0.0) && (delta < (MagickPI/8.0))) step=MagickPI/(4*(MagickPI/delta/2+0.5)); + if (step < 0.0000001) + step=0.0000001; angle.x=DegreesToRadians(degrees.x); y=degrees.y; while (y < degrees.x) diff --git a/configure b/configure index 33968a89b..70c75a9b0 100755 --- a/configure +++ b/configure @@ -4550,7 +4550,7 @@ MAGICK_PATCHLEVEL_VERSION=27 MAGICK_VERSION=7.0.7-27 -MAGICK_GIT_REVISION=23345:05c39cf4e:20180312 +MAGICK_GIT_REVISION=23380:472bb6d76:20180316 # Substitute library versioning