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() {