]> granicus.if.org Git - imagemagick/commitdiff
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=5826
authorCristy <urban-warrior@imagemagick.org>
Tue, 30 Jan 2018 18:36:02 +0000 (13:36 -0500)
committerCristy <urban-warrior@imagemagick.org>
Tue, 30 Jan 2018 18:36:02 +0000 (13:36 -0500)
MagickCore/draw.c

index 1a251683bcddaa2ee873aab4974feb40eaf2f27e..f4eda8a8c0d04b59256d80abaa957771ded48162 100644 (file)
@@ -3483,7 +3483,7 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
             {
               offset=GetStopColorOffset(gradient,x,y);
               if (gradient->type != RadialGradient)
-                offset/=length;
+                offset*=PerceptibleReciprocal(length);
             }
           for (i=0; i < (ssize_t) gradient->number_stops; i++)
             if (offset < gradient->stops[i].offset)
@@ -3511,7 +3511,7 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
             {
               offset=GetStopColorOffset(gradient,x,y);
               if (gradient->type != RadialGradient)
-                offset/=length;
+                                                               offset*=PerceptibleReciprocal(length);
             }
           if (offset < 0.0)
             offset=(-offset);
@@ -3561,7 +3561,7 @@ MagickExport MagickBooleanType DrawGradientImage(Image *image,
                     repeat=fmod(offset,length);
                   antialias=(repeat < length) && ((repeat+1.0) > length) ?
                     MagickTrue : MagickFalse;
-                  offset=repeat/length;
+                                                                 offset=PerceptibleReciprocal(length)*repeat;
                 }
               else
                 {