From ebe397f8c0d828948a3a1d02dae199602230d4ad Mon Sep 17 00:00:00 2001 From: Cristy Date: Mon, 14 Oct 2019 19:54:35 -0400 Subject: [PATCH] ... --- MagickCore/quantize.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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); } -- 2.40.0