From 412386d975c3c690eaa23bf9541450a842be3fe2 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Thu, 21 Jun 2018 16:16:30 +0200 Subject: [PATCH] Avoid undefined behaviour due to division by zero --- src/libImaging/QuantOctree.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/libImaging/QuantOctree.c b/src/libImaging/QuantOctree.c index e18ab3c65..bf53006fe 100644 --- a/src/libImaging/QuantOctree.c +++ b/src/libImaging/QuantOctree.c @@ -149,10 +149,17 @@ count_used_color_buckets(const ColorCube cube) { static void avg_color_from_color_bucket(const ColorBucket bucket, Pixel *dst) { float count = bucket->count; - dst->c.r = (int)(bucket->r / count); - dst->c.g = (int)(bucket->g / count); - dst->c.b = (int)(bucket->b / count); - dst->c.a = (int)(bucket->a / count); + if (bucket->count != 0) { + dst->c.r = (int)(bucket->r / count); + dst->c.g = (int)(bucket->g / count); + dst->c.b = (int)(bucket->b / count); + dst->c.a = (int)(bucket->a / count); + } else { + dst->c.r = 0; + dst->c.g = 0; + dst->c.b = 0; + dst->c.a = 0; + } } static int