x11-base/xorg-server: Add upstream patch to fix crash
authorMatt Turner <mattst88@gentoo.org>
Tue, 6 Mar 2018 20:23:08 +0000 (12:23 -0800)
committerMatt Turner <mattst88@gentoo.org>
Tue, 6 Mar 2018 20:25:20 +0000 (12:25 -0800)
Closes: https://bugs.gentoo.org/649392

x11-base/xorg-server/files/xorg-server-1.19.99.901-randr-fix-crash.patch [new file with mode: 0644]
x11-base/xorg-server/xorg-server-1.19.99.901-r1.ebuild [moved from x11-base/xorg-server/xorg-server-1.19.99.901.ebuild with 99% similarity]

diff --git a/x11-base/xorg-server/files/xorg-server-1.19.99.901-randr-fix-crash.patch b/x11-base/xorg-server/files/xorg-server-1.19.99.901-randr-fix-crash.patch
new file mode 100644 (file)
index 0000000..bcaaf86
--- /dev/null
@@ -0,0 +1,44 @@
+From 2af0a50a4bb9be9f58681d417ceb9a7029caaf3b Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Wed, 28 Feb 2018 11:23:41 -0500
+Subject: [PATCH] randr: Fix a crash on initialization with GPU screens
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+RRSetChanged (immediately above) was immune to screens with no master,
+but RRTellChanged was not:
+
+    Thread 1 "X" received signal SIGSEGV, Segmentation fault.
+    RRTellChanged (pScreen=<optimized out>) at ../../randr/randr.c:576
+    576             mastersp = rrGetScrPriv(master);
+    (gdb) bt
+    #0  RRTellChanged (pScreen=<optimized out>) at ../../randr/randr.c:576
+    #1  0x000055555566f1e9 in RRNoticePropertyChange (value=0x555555bfbf28, property=70, output=0x555555bfef10) at ../../randr/rrproperty.c:153
+    #2  RRChangeOutputProperty (output=output@entry=0x555555bfef10, property=<optimized out>, type=type@entry=19, format=format@entry=32, mode=<optimized out>, mode@entry=0, len=len@entry=1, value=0x7fffffffe77c, sendevent=1, pending=0)
+        at ../../randr/rrproperty.c:263
+    #3  0x000055555566dba5 in RROutputSetNonDesktop (output=output@entry=0x555555bfef10, nonDesktop=nonDesktop@entry=0) at ../../randr/rroutput.c:333
+    ...
+
+Reported-by: Michel Dänzer <michel@daenzer.net>
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+---
+ randr/randr.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/randr/randr.c b/randr/randr.c
+index 339ad3ece..feb54bcc8 100644
+--- a/randr/randr.c
++++ b/randr/randr.c
+@@ -602,6 +602,8 @@ RRTellChanged(ScreenPtr pScreen)
+     if (pScreen->isGPU) {
+         master = pScreen->current_master;
++        if (!master)
++            return;
+         mastersp = rrGetScrPriv(master);
+     }
+     else {
+-- 
+2.16.1
+
similarity index 99%
rename from x11-base/xorg-server/xorg-server-1.19.99.901.ebuild
rename to x11-base/xorg-server/xorg-server-1.19.99.901-r1.ebuild
index 37491c682e68a1c33284b61028b79df1a24cd617..19c536df784f217a05376b2737dc4a13d29ac777 100644 (file)
@@ -117,6 +117,7 @@ PATCHES=(
        "${FILESDIR}"/${PN}-1.12-unloadsubmodule.patch
        # needed for new eselect-opengl, bug #541232
        "${FILESDIR}"/${PN}-1.18-support-multiple-Files-sections.patch
+       "${FILESDIR}"/${P}-randr-fix-crash.patch
 )
 
 pkg_pretend() {