[xorg-x11-server/f15/master] fix memcpy abuse

Adam Jackson ajax at fedoraproject.org
Thu Apr 21 20:42:45 UTC 2011


commit 8e9b95c8071eb5a0ed96fffab156a85e6445a94b
Author: Adam Jackson <ajax at redhat.com>
Date:   Thu Apr 21 16:42:35 2011 -0400

    fix memcpy abuse

 xorg-x11-server.spec              |    7 +++++-
 xserver-1.10.1-memcpy-abuse.patch |   44 +++++++++++++++++++++++++++++++++++++
 2 files changed, 50 insertions(+), 1 deletions(-)
---
diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec
index 035dde3..1320467 100644
--- a/xorg-x11-server.spec
+++ b/xorg-x11-server.spec
@@ -30,7 +30,7 @@
 Summary:   X.Org X11 X server
 Name:      xorg-x11-server
 Version:   1.10.1
-Release:   11%{?gitdate:.%{gitdate}}%{dist}
+Release:   12%{?gitdate:.%{gitdate}}%{dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X
@@ -96,6 +96,8 @@ Patch7011: xserver-1.10-swrastg.patch
 
 # sent upstream, should be in soon
 Patch7012: xserver-1.10-dix-only-transform-valuators-when-we-need-them.patch
+# ditto
+#Patch7013: xserver-1.10.1-memcpy-abuse.patch
 
 %define moduledir	%{_libdir}/xorg/modules
 %define drimoduledir	%{_libdir}/dri
@@ -561,6 +563,9 @@ rm -rf $RPM_BUILD_ROOT
 %{xserver_source_dir}
 
 %changelog
+* Thu Apr 21 2011 Adam Jackson <ajax at redhat.com> 1.10.1-12
+- xserver-1.10.1-memcpy-abuse.patch: Fix memcpy abuse
+
 * Thu Apr 21 2011 Hans de Goede <hdegoede at redhat.com> 1.10.1-11
 - Drop xserver-1.9.0-qxl-fallback.patch, since the latest qxl driver
   supports both revision 1 and 2 qxl devices (#642153)
diff --git a/xserver-1.10.1-memcpy-abuse.patch b/xserver-1.10.1-memcpy-abuse.patch
new file mode 100644
index 0000000..e3b1b97
--- /dev/null
+++ b/xserver-1.10.1-memcpy-abuse.patch
@@ -0,0 +1,44 @@
+From f24c4b2e3803f2b0e4eb7de5288756c4f9758ad5 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax at redhat.com>
+Date: Thu, 21 Apr 2011 16:41:14 -0400
+Subject: [PATCH] fb: fix memcpy abuse
+
+Signed-off-by: Adam Jackson <ajax at redhat.com>
+---
+ fb/fbblt.c |    9 +++++++--
+ 1 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/fb/fbblt.c b/fb/fbblt.c
+index 38271c0..980ad5a 100644
+--- a/fb/fbblt.c
++++ b/fb/fbblt.c
+@@ -65,6 +65,7 @@ fbBlt (FbBits   *srcLine,
+     int	    n, nmiddle;
+     Bool    destInvarient;
+     int	    startbyte, endbyte;
++    int     careful;
+     FbDeclareMergeRop ();
+ 
+ #ifdef FB_24BIT
+@@ -76,12 +77,16 @@ fbBlt (FbBits   *srcLine,
+     }
+ #endif
+ 
+-    if (alu == GXcopy && pm == FB_ALLONES && !reverse &&
++    careful = !((srcLine < dstLine && srcLine + width * (bpp/8) > dstLine) ||
++                (dstLine < srcLine && dstLine + width * (bpp/8) > srcLine)) ||
++              (bpp % 8);
++
++    if (alu == GXcopy && pm == FB_ALLONES && !careful &&
+             !(srcX & 7) && !(dstX & 7) && !(width & 7)) {
+         int i;
+         CARD8 *src = (CARD8 *) srcLine;
+         CARD8 *dst = (CARD8 *) dstLine;
+-        
++
+         srcStride *= sizeof(FbBits);
+         dstStride *= sizeof(FbBits);
+         width >>= 3;
+-- 
+1.7.4.4
+


More information about the scm-commits mailing list