From 90483fcabbd19b35ded094a6a592ee224029fd07 Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Thu, 15 Jul 2010 23:40:28 -0400 Subject: [PATCH] bits: Fix potential divide-by-zero in projective code If the homogeneous coordinate is 0, just set the coordinates to 0. --- pixman/pixman-bits-image.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c index 95710b4..36ea0af 100644 --- a/pixman/pixman-bits-image.c +++ b/pixman/pixman-bits-image.c @@ -695,12 +695,20 @@ bits_image_fetch_transformed (pixman_image_t * image, { for (i = 0; i < width; ++i) { - pixman_fixed_t x0, y0; - if (!mask || mask[i]) { - x0 = ((pixman_fixed_48_16_t)x << 16) / w; - y0 = ((pixman_fixed_48_16_t)y << 16) / w; + pixman_fixed_t x0, y0; + + if (w != 0) + { + x0 = ((pixman_fixed_48_16_t)x << 16) / w; + y0 = ((pixman_fixed_48_16_t)y << 16) / w; + } + else + { + x0 = 0; + y0 = 0; + } buffer[i] = bits_image_fetch_pixel_filtered (&image->bits, x0, y0); -- 2.7.4