From: Cristy Date: Mon, 14 Oct 2019 23:54:35 +0000 (-0400) Subject: ... X-Git-Tag: 7.0.9-0~66 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ebe397f8c0d828948a3a1d02dae199602230d4ad;p=imagemagick ... --- diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c index e26fd01a3..d2b5cca07 100644 --- a/MagickCore/quantize.c +++ b/MagickCore/quantize.c @@ -3277,6 +3277,15 @@ MagickExport MagickBooleanType RemapImages(const QuantizeInfo *quantize_info, extern "C" { #endif +static inline double ConstrainPixelIntensity(double x) +{ + if (x < (double) -(SSIZE_MAX-512)) + return((double) -(SSIZE_MAX-512)); + if (x > (double) (SSIZE_MAX-512)) + return((double) (SSIZE_MAX-512)); + return(x); +} + static int IntensityCompare(const void *x,const void *y) { PixelInfo @@ -3288,8 +3297,9 @@ static int IntensityCompare(const void *x,const void *y) color_1=(PixelInfo *) x; color_2=(PixelInfo *) y; - intensity=(ssize_t) GetPixelInfoIntensity((const Image *) NULL,color_1)- - (ssize_t) GetPixelInfoIntensity((const Image *) NULL,color_2); + intensity=(ssize_t) ConstrainPixelIntensity(GetPixelInfoIntensity( + (const Image *) NULL,color_1))-(ssize_t) ConstrainPixelIntensity( + GetPixelInfoIntensity((const Image *) NULL,color_2)); return((int) intensity); }