From 0a975530f473d11f12f3a4dd4a51a1a1e2888652 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Fri, 6 Aug 2010 15:19:32 -0400 Subject: [PATCH] xorg-server: Add GLX segfault fix. --- x11-base/xorg-server/Manifest | 4 +- ...LL-context-deref-in-__glXGetDrawable.patch | 44 +++++++++++++++++++ x11-base/xorg-server/xorg-server-9999.ebuild | 1 + 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 x11-base/xorg-server/files/0001-glx-Prevent-NULL-context-deref-in-__glXGetDrawable.patch diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest index 67d9553..f44ef7a 100644 --- a/x11-base/xorg-server/Manifest +++ b/x11-base/xorg-server/Manifest @@ -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 index 0000000..90bef52 --- /dev/null +++ b/x11-base/xorg-server/files/0001-glx-Prevent-NULL-context-deref-in-__glXGetDrawable.patch @@ -0,0 +1,44 @@ +From a59c7428549c8be0724bcfceecd596582840852b Mon Sep 17 00:00:00 2001 +From: Chris Wilson +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 +Cc: Kristian Høgsberg +--- + 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 + diff --git a/x11-base/xorg-server/xorg-server-9999.ebuild b/x11-base/xorg-server/xorg-server-9999.ebuild index 31699eb..44fa776 100644 --- a/x11-base/xorg-server/xorg-server-9999.ebuild +++ b/x11-base/xorg-server/xorg-server-9999.ebuild @@ -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() { -- 2.43.2