commit:     bbf0927bb971152a4d7e18b7fa3f3c40c186a569
Author:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Tue Mar  6 20:23:08 2018 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Tue Mar  6 20:25:20 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bbf0927b

x11-base/xorg-server: Add upstream patch to fix crash

Closes: https://bugs.gentoo.org/649392

 .../xorg-server-1.19.99.901-randr-fix-crash.patch  | 44 ++++++++++++++++++++++
 ...01.ebuild => xorg-server-1.19.99.901-r1.ebuild} |  1 +
 2 files changed, 45 insertions(+)

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
index 00000000000..bcaaf867c7a
--- /dev/null
+++ b/x11-base/xorg-server/files/xorg-server-1.19.99.901-randr-fix-crash.patch
@@ -0,0 +1,44 @@
+From 2af0a50a4bb9be9f58681d417ceb9a7029caaf3b Mon Sep 17 00:00:00 2001
+From: Adam Jackson <a...@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 <mic...@daenzer.net>
+Signed-off-by: Adam Jackson <a...@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
+

diff --git a/x11-base/xorg-server/xorg-server-1.19.99.901.ebuild 
b/x11-base/xorg-server/xorg-server-1.19.99.901-r1.ebuild
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 37491c682e6..19c536df784 100644
--- a/x11-base/xorg-server/xorg-server-1.19.99.901.ebuild
+++ b/x11-base/xorg-server/xorg-server-1.19.99.901-r1.ebuild
@@ -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() {

Reply via email to