]> git.draconx.ca Git - gentoo-draconx.git/commitdiff
xorg-server: Add GLX segfault fix.
authorNick Bowler <nbowler@elliptictech.com>
Fri, 6 Aug 2010 19:19:32 +0000 (15:19 -0400)
committerNick Bowler <nbowler@elliptictech.com>
Fri, 6 Aug 2010 19:19:32 +0000 (15:19 -0400)
x11-base/xorg-server/Manifest
x11-base/xorg-server/files/0001-glx-Prevent-NULL-context-deref-in-__glXGetDrawable.patch [new file with mode: 0644]
x11-base/xorg-server/xorg-server-9999.ebuild

index 67d9553ff40509611bb15447459c840311b1c516..f44ef7a7d2bc53e29122c3b9d7ff947f763bc145 100644 (file)
@@ -1,3 +1,4 @@
+AUX 0001-glx-Prevent-NULL-context-deref-in-__glXGetDrawable.patch 1444 RMD160 ef456abf18c8ee41c3533255e48573aefdbdaf8a SHA1 1479c6112e0238abad209b1f2f4a22610f134ba1 SHA256 14783bc436f8c391e669b4e94727bccdfced8c50aae4f3c897aee4ac022e7c83
 AUX 0001-xfree86-Add-DontLie-server-flag.patch 4746 RMD160 87de996ac0eaab5d0bdc7013319ee8b0c7cd1727 SHA1 f5ba61e4a1a08b6d8f35be96d7295599edae0b84 SHA256 904cdde3750fdc23572286cd8d8fb6e6372b8c56021dcb8b1a14a5e1e5101759
 AUX 1.7.5.902-fix-tslib-1.0-check.patch 743 RMD160 139969e7c89ccbb6c86a93b7ea74aad2e942cd55 SHA1 621f3dea75aeb84a30279e5854b0ae256f653113 SHA256 03fced212933eb4502554c4fd629ead92027dc13f178ad5c43cd59b7ce615cea
 AUX 1.8.0-match-only-sane-devices.patch 1980 RMD160 4fee29076bb30e8fb1b820ef58a1c26f3bd63c73 SHA1 98d4ea8e493a31f141e39f4a468458469ebff58f SHA256 95f6ab36fa1b6b80786ff90fb2ee1f7fe02d964a1d10c90277060b4982d8eace
@@ -13,5 +14,4 @@ DIST xorg-server-1.8.1.tar.bz2 5200978 RMD160 27bd6d1e565e241412f1fb8e18b5b9b194
 EBUILD xorg-server-1.7.7.ebuild 7220 RMD160 ed925fe7fccf08ae58ce59314a0c472535f13ec0 SHA1 5d72d32a1b8c9c4f40f88627b42d749ed4223e7b SHA256 f70710b49e1ca43c8cc765fe20ab9819bc5b2793eff0064cee607e4703d73ccc
 EBUILD xorg-server-1.8.0.ebuild 8221 RMD160 6aa53ec1042a8c12b9aa06c1aee767a50e1c2445 SHA1 d1e770f5108c161fb5d20207c612c568c32cfdc8 SHA256 5e21d8ab052b17774c40b67fb20981847a289ddbad39b8753501d21b50a6d450
 EBUILD xorg-server-1.8.1-r1.ebuild 7998 RMD160 c1035725f811ee2b5723a8bdac73cb3eeb3f6dd0 SHA1 08cf52506fb9eb2261b9c3d64dd8807fd95daeb5 SHA256 43b5bc070b8f479c08532f4a5c62b332cf8f579ee5f49614ffb256a1bb746a1a
-EBUILD xorg-server-9999.ebuild 7396 RMD160 16d302c1721b7acb22059850caec602575641e36 SHA1 8c019ebf95ece1fb20b5873b95a75d8c2fd1ef2b SHA256 48e5a9770e38cb9f2c08b584ad363447ea5b5ecf778e874a9d640f0767db1174
-MISC xorg-server-9999.ebuild.orig 7242 RMD160 44616d066db61f867abfcb83fc213c76239ac0bb SHA1 aee603592a792a9d08216169ede40883de05ed9f SHA256 257e15068c5b744dfaaa5b7d26d391db954ef5dfdda1ccdbfd3f6b501475b765
+EBUILD xorg-server-9999.ebuild 7473 RMD160 84e9242f14a604234f3bff456c816a078651db7a SHA1 8650274a5e449761ef6ce91f387e9338dc2c0574 SHA256 41fa2ee5f7a7cf3168f049fb686ee6611046861d954651044e9ce35985c58c4e
diff --git a/x11-base/xorg-server/files/0001-glx-Prevent-NULL-context-deref-in-__glXGetDrawable.patch b/x11-base/xorg-server/files/0001-glx-Prevent-NULL-context-deref-in-__glXGetDrawable.patch
new file mode 100644 (file)
index 0000000..90bef52
--- /dev/null
@@ -0,0 +1,44 @@
+From a59c7428549c8be0724bcfceecd596582840852b Mon Sep 17 00:00:00 2001
+From: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Thu, 24 Jun 2010 12:24:58 +0100
+Subject: [PATCH] glx: Prevent NULL context deref in __glXGetDrawable()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+During a SwapBuffers request, we may end up querying an unknown drawable
+outside of an active context, and so need to report this error prior to
+attempting to dereference the NULL context.
+
+Also fixes:
+
+  [Bug 29184] glXSwapBuffers with no GLX context crashes X.
+  https://bugs.freedesktop.org/show_bug.cgi?id=29184
+
+Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+Cc: Kristian Høgsberg <krh@bitplanet.net>
+---
+ glx/glxcmds.c |    7 +++++++
+ 1 files changed, 7 insertions(+), 0 deletions(-)
+
+diff --git a/glx/glxcmds.c b/glx/glxcmds.c
+index 9e5b213..8d13c15 100644
+--- a/glx/glxcmds.c
++++ b/glx/glxcmds.c
+@@ -491,6 +491,13 @@ __glXGetDrawable(__GLXcontext *glxc, GLXDrawable drawId, ClientPtr client,
+       return pGlxDraw;
+     }
++    /* No active context and an unknown drawable, bail. */
++    if (glxc == NULL) {
++          client->errorValue = drawId;
++          *error = BadMatch;
++          return NULL;
++    }
++
+     /* The drawId wasn't a GLX drawable.  Make sure it's a window and
+      * create a GLXWindow for it.  Check that the drawable screen
+      * matches the context screen and that the context fbconfig is
+-- 
+1.7.1
+
index 31699eb2279baf698ace9670422044d770479861..44fa7764c8bed490622a9d595832863d423aaae6 100644 (file)
@@ -100,6 +100,7 @@ EPATCH_SUFFIX="patch"
 PATCHES=(
        "${UPSTREAMED_PATCHES[@]}"
        "${FILESDIR}"/${PN}-disable-acpi.patch
+       "${FILESDIR}"/0001-glx-Prevent-NULL-context-deref-in-__glXGetDrawable.patch
        )
 
 pkg_setup() {