[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

freeze exception for xorg-server



Hi,

I just uploaded xorg-server 2:1.4.2-9 to sid, with some fixes that
should get in lenny.  The diff from -7 follows, please unblock after
review. :)

Cheers,
Julien

 debian/changelog                                   |   19 +++++++++
 ...nitialize-io.pi_sel.pc_domain-on-kfreebsd.patch |   32 ++++++++++++++++
 debian/patches/54_more-sanity-checks.diff          |   40 ++++++++++++++++++++
 debian/patches/series                              |    2 +
 hw/xfree86/common/xf86Helper.c                     |    5 --
 hw/xfree86/common/xf86Xinput.c                     |    6 +-
 6 files changed, 96 insertions(+), 8 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index cc60ed9..a316198 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,22 @@
+xorg-server (2:1.4.2-9) unstable; urgency=low
+
+  * Cherry-pick patches from upstream to make xf86ScaleAxis() work correctly.
+  * Steal patch from Fedora: more sanity checks to stop vmmouse from
+    segfaulting the server (closes: #503459).
+
+ -- Julien Cristau <jcristau@debian.org>  Thu, 13 Nov 2008 23:32:47 +0100
+
+xorg-server (2:1.4.2-8) unstable; urgency=low
+
+  * Add patch from Petr Salinger to fix PCI domain support on kfreebsd
+    (closes: #499501).
+  * xfree86: xf86SetDepthBpp needs to respect the driver's depth24flags.
+    Instead of forcing a 32bpp framebuffer, we pick a value that the driver
+    actually supports (closes: #504819, #486925); cherry-picked from upstream
+    git.
+
+ -- Julien Cristau <jcristau@debian.org>  Tue, 11 Nov 2008 20:46:52 +0100
+
 xorg-server (2:1.4.2-7) unstable; urgency=low
 
   * Update debian/copyright to the SGI Free Software License B, version 2.0.
diff --git a/debian/patches/53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch b/debian/patches/53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch
new file mode 100644
index 0000000..acb6c6c
--- /dev/null
+++ b/debian/patches/53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch
@@ -0,0 +1,32 @@
+From 43b9645e4f5343757613c422c9e1204ba826d1f7 Mon Sep 17 00:00:00 2001
+From: Petr Salinger <Petr.Salinger@seznam.cz>
+Date: Mon, 6 Oct 2008 18:33:31 +0200
+Subject: [PATCH] Properly initialize io.pi_sel.pc_domain on kfreebsd
+
+---
+ hw/xfree86/os-support/bus/freebsdPci.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/hw/xfree86/os-support/bus/freebsdPci.c b/hw/xfree86/os-support/bus/freebsdPci.c
+index 63c00b2..b1f3dbd 100644
+--- a/hw/xfree86/os-support/bus/freebsdPci.c
++++ b/hw/xfree86/os-support/bus/freebsdPci.c
+@@ -133,6 +133,7 @@ freebsdPciCfgRead(PCITAG tag, int off)
+ {
+ 	struct pci_io io;
+ 	int error;
++	io.pi_sel.pc_domain = PCI_DOM_FROM_TAG(tag);
+ 	io.pi_sel.pc_bus = BUS(tag);
+ 	io.pi_sel.pc_dev = DFN(tag) >> 3;
+ 	io.pi_sel.pc_func = DFN(tag) & 7;
+@@ -148,6 +149,7 @@ static void
+ freebsdPciCfgWrite(PCITAG tag, int off, CARD32 val)
+ {
+ 	struct pci_io io;
++	io.pi_sel.pc_domain = PCI_DOM_FROM_TAG(tag);
+ 	io.pi_sel.pc_bus = BUS(tag);
+ 	io.pi_sel.pc_dev = DFN(tag) >> 3;
+ 	io.pi_sel.pc_func = DFN(tag) & 7;
+-- 
+1.5.6.5
+
diff --git a/debian/patches/54_more-sanity-checks.diff b/debian/patches/54_more-sanity-checks.diff
new file mode 100644
index 0000000..302b7d8
--- /dev/null
+++ b/debian/patches/54_more-sanity-checks.diff
@@ -0,0 +1,40 @@
+From 30c077f228f563e4e1f4115b345577d9fd393b68 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer@redhat.com>
+Date: Fri, 24 Oct 2008 15:06:49 +1030
+Subject: [PATCH] dix: extra sanity-checks against potential NULL-dereferences. #434807
+
+Two minor code paths could potentially crash the server:
+- if scr is NULL, we shouldn't try to dereference it.
+- if GPE is called with buttons != 0 but the event is not a
+  ButtonPress or ButtonRelease, the button mapping may dereference a NULL
+  pointer.
+
+Admittedly the second should never happen, but better to guard against it.
+---
+ dix/getevents.c |    6 ++++++
+ 1 files changed, 6 insertions(+), 0 deletions(-)
+
+Index: xorg-server/dix/getevents.c
+===================================================================
+--- xorg-server.orig/dix/getevents.c
++++ xorg-server/dix/getevents.c
+@@ -535,6 +535,9 @@
+     ScreenPtr scr = miPointerGetScreen(pDev);
+ 
+     /* Sanity checks. */
++    if (!scr)
++        return 0;
++
+     if (type != MotionNotify && type != ButtonPress && type != ButtonRelease)
+         return 0;
+ 
+@@ -546,6 +549,9 @@
+     if (!pDev->valuator)
+         return 0;
+ 
++    if (buttons && !pDev->button)
++        return 0;
++
+     if (!coreOnly && pDev->coreEvents)
+         num_events = 2;
+     else
diff --git a/debian/patches/series b/debian/patches/series
index 55ff4fa..25604c9 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -26,6 +26,8 @@
 50_Make-RandRQueryVersion-return-1.1-for-swapped-client.patch
 51_xevie-length.diff
 52_xevie-swap-replies.diff
+53_Properly-initialize-io.pi_sel.pc_domain-on-kfreebsd.patch
+54_more-sanity-checks.diff
 91_ttf2pt1
 91_ttf2pt1_updates
 92_xprint-security-holes-fix.patch
diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 7adac73..b6e0787 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -466,10 +466,6 @@ xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp, int pad)
 #define GLOBAL_DEFAULT_DEPTH 24
 #endif
 
-#ifndef GLOBAL_DEFAULT_FBBPP
-#define GLOBAL_DEFAULT_FBBPP 32
-#endif
-
 _X_EXPORT Bool
 xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
 		int depth24flags)
@@ -547,7 +543,6 @@ xf86SetDepthBpp(ScrnInfoPtr scrp, int depth, int dummy, int fbbpp,
 	    if (depth > 0)
 		scrp->depth = depth;
 	} else {
-	    scrp->bitsPerPixel = GLOBAL_DEFAULT_FBBPP;
 	    scrp->depth = GLOBAL_DEFAULT_DEPTH;
 	}
     }
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index ca2be5c..d8b05ab 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -737,10 +737,10 @@ xf86ScaleAxis(int	Cx,
 	ErrorF ("Divide by Zero in xf86ScaleAxis");
     }
     
-    if (X > Sxlow)
-	X = Sxlow;
-    if (X < Sxhigh)
+    if (X > Sxhigh)
 	X = Sxhigh;
+    if (X < Sxlow)
+	X = Sxlow;
     
     return (X);
 }


Reply to: