From 6f65ce9886a022c0e72a7e05f075bafa87b87bf4 Mon Sep 17 00:00:00 2001
From: Julien Cristau <jcristau@debian.org>
Date: Tue, 16 Oct 2007 10:03:21 +0200
Subject: [PATCH] Fix 64-bit arithmetic bug in fbFetchTransformed.

Add patch by Francis Whittle from upstream bug#12398
(https://bugs.freedesktop.org/attachment.cgi?id=11896) to fix arithmetic
bug in fbFetchTransformed (causing X crashes on 64bit); closes: #444457.
---
 debian/changelog                              |  8 +++++
 .../03_fbFetchTransformed_64bit_fix.diff      | 29 +++++++++++++++++++
 debian/patches/series                         |  1 +
 3 files changed, 38 insertions(+)
 create mode 100644 debian/patches/03_fbFetchTransformed_64bit_fix.diff

diff --git a/debian/changelog b/debian/changelog
index 533b1c74..a50216cb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+pixman (0.9.5-3) unstable; urgency=low
+
+  * Add patch by Francis Whittle from upstream bug#12398
+    (https://bugs.freedesktop.org/attachment.cgi?id=11896) to fix arithmetic
+    bug in fbFetchTransformed (causing X crashes on 64bit); closes: #444457.
+
+ -- Julien Cristau <jcristau@debian.org>  Tue, 16 Oct 2007 09:52:16 +0200
+
 pixman (0.9.5-2) unstable; urgency=high
 
   * High urgency for RC bugfix.
diff --git a/debian/patches/03_fbFetchTransformed_64bit_fix.diff b/debian/patches/03_fbFetchTransformed_64bit_fix.diff
new file mode 100644
index 00000000..f637dde3
--- /dev/null
+++ b/debian/patches/03_fbFetchTransformed_64bit_fix.diff
@@ -0,0 +1,29 @@
+Fix 64-bit arithmetic bug.
+
+This patch by Francis Whittle.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=12398
+https://bugs.freedesktop.org/attachment.cgi?id=11896
+
+Index: pixman/pixman/pixman-compose.c
+===================================================================
+--- pixman.orig/pixman/pixman-compose.c	2007-10-16 09:51:39.000000000 +0200
++++ pixman/pixman/pixman-compose.c	2007-10-16 09:51:54.000000000 +0200
+@@ -3878,7 +3878,7 @@
+ 			    idistx = 256 - distx;
+ 			    idisty = 256 - disty;
+ 			    
+-			    b = bits + (y1)*stride;
++			    b = bits + (signed)((y1)*stride);
+ 			    x_off = x1;
+ 			    
+ 			    x1_out = (x1 < box.x1) | (x1 >= box.x2);
+@@ -3944,7 +3944,7 @@
+ 			    idistx = 256 - distx;
+ 			    idisty = 256 - disty;
+ 			    
+-			    b = bits + (y1)*stride;
++			    b = bits + (signed)((y1)*stride);
+ 			    x_off = x1;
+ 			    
+ 			    tl = pixman_region_contains_point(pict->common.src_clip, x1, y1, &box)
diff --git a/debian/patches/series b/debian/patches/series
index 75d7f88f..4d2d9270 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1,3 @@
 01_maintainer-mode.diff
 02_no-sse.diff
+03_fbFetchTransformed_64bit_fix.diff
-- 
GitLab