From: Martin Pitt Date: Fri, 14 Jan 2011 23:32:10 +0000 (-0500) Subject: pixel-buffer: Fix overflow in blend_two_pixel_values X-Git-Tag: 0.8.4~87 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f8874cb4b0725f605dc710cc845e6b5ff52ad539;p=thirdparty%2Fplymouth.git pixel-buffer: Fix overflow in blend_two_pixel_values It was using 16bit types to hold the intermiediate results of the blend, but for high intensity, low opacity input values it could need up to 17 bits to prevent overflow. https://bugs.freedesktop.org/show_bug.cgi?id=33129 --- diff --git a/src/libply-splash-core/ply-pixel-buffer.c b/src/libply-splash-core/ply-pixel-buffer.c index 038601e6..a612990a 100644 --- a/src/libply-splash-core/ply-pixel-buffer.c +++ b/src/libply-splash-core/ply-pixel-buffer.c @@ -65,7 +65,7 @@ blend_two_pixel_values (uint32_t pixel_value_1, { uint8_t alpha_1, red_1, green_1, blue_1; uint8_t red_2, green_2, blue_2; - uint_least16_t red, green, blue; + uint_least32_t red, green, blue; alpha_1 = (uint8_t) (pixel_value_1 >> 24); red_1 = (uint8_t) (pixel_value_1 >> 16);