From eebe3ea923415bb799443a0fd8430214f01c462c Mon Sep 17 00:00:00 2001 From: Andrew Murray Date: Sat, 21 Apr 2018 13:42:39 +1000 Subject: [PATCH] Corrected undefined behaviour --- src/libImaging/Effects.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/libImaging/Effects.c b/src/libImaging/Effects.c index 26b063a11..6d25f4fff 100644 --- a/src/libImaging/Effects.c +++ b/src/libImaging/Effects.c @@ -79,6 +79,7 @@ ImagingEffectNoise(int xsize, int ysize, float sigma) Imaging imOut; int x, y; int nextok; + int d; double this, next; imOut = ImagingNewDirty("L", xsize, ysize); @@ -106,7 +107,8 @@ ImagingEffectNoise(int xsize, int ysize, float sigma) this = factor * v1; next = factor * v2; } - out[x] = (unsigned char) (128 + sigma * this); + d = 128 + sigma * this; + out[x] = d<0 ? 0 : (d>UCHAR_MAX ? UCHAR_MAX : d); } }