From ed61d44f120562825293091433548b5feeaa66cd Mon Sep 17 00:00:00 2001 From: Cristy Date: Sat, 16 Feb 2019 18:06:34 -0500 Subject: [PATCH] ... --- MagickCore/draw.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/MagickCore/draw.c b/MagickCore/draw.c index f7086559a..b16711c89 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -1809,7 +1809,8 @@ static MagickBooleanType DrawDashPolygon(const DrawInfo *draw_info, break; if (fabs(length) < MagickEpsilon) { - n++; + if (draw_info->dash_pattern[n] != 0.0) + n++; if (fabs(draw_info->dash_pattern[n]) < MagickEpsilon) n=0; length=scale*draw_info->dash_pattern[n]; @@ -4976,6 +4977,15 @@ RestoreMSCWarning % */ +static inline double ConstrainCoordinate(double x) +{ + if (x < LONG_MIN) + return(LONG_MIN); + if (x > LONG_MAX) + return(LONG_MAX); + return(x); +} + static void LogPrimitiveInfo(const PrimitiveInfo *primitive_info) { const char @@ -4991,8 +5001,8 @@ static void LogPrimitiveInfo(const PrimitiveInfo *primitive_info) PointInfo p, - q, - point; + point, + q; register ssize_t i, @@ -5116,8 +5126,8 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image, status&=SetImageMask(image,CompositePixelMask,draw_info->composite_mask, exception); } - x=(ssize_t) ceil(primitive_info->point.x-0.5); - y=(ssize_t) ceil(primitive_info->point.y-0.5); + x=(ssize_t) ceil(ConstrainCoordinate(primitive_info->point.x-0.5)); + y=(ssize_t) ceil(ConstrainCoordinate(primitive_info->point.y-0.5)); image_view=AcquireAuthenticCacheView(image,exception); switch (primitive_info->primitive) { -- 2.40.0