[Pixman] [PATCH] bits: Fix potential divide-by-zero in projective code
Søren Sandmann
sandmann at daimi.au.dk
Thu Jul 15 20:45:20 PDT 2010
From: Søren Sandmann Pedersen <ssp at redhat.com>
If the homogeneous coordinate is 0, just set the coordinates to 0.
---
pixman/pixman-bits-image.c | 16 ++++++++++++----
1 files 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);
--
1.6.0.6
More information about the Pixman
mailing list