summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gentoo.org>2018-03-06 12:23:08 -0800
committerMatt Turner <mattst88@gentoo.org>2018-03-06 12:25:20 -0800
commitbbf0927bb971152a4d7e18b7fa3f3c40c186a569 (patch)
treea01f49b2d16bfd96dbfc63814745b89d16bedc11 /x11-base/xorg-server/files
parentx11-base/xorg-server: Require libdrm-2.4.89 (diff)
downloadgentoo-bbf0927bb971152a4d7e18b7fa3f3c40c186a569.tar.gz
gentoo-bbf0927bb971152a4d7e18b7fa3f3c40c186a569.tar.bz2
gentoo-bbf0927bb971152a4d7e18b7fa3f3c40c186a569.zip
x11-base/xorg-server: Add upstream patch to fix crash
Closes: https://bugs.gentoo.org/649392
Diffstat (limited to 'x11-base/xorg-server/files')
-rw-r--r--x11-base/xorg-server/files/xorg-server-1.19.99.901-randr-fix-crash.patch44
1 files changed, 44 insertions, 0 deletions
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 000000000000..bcaaf867c7a7
--- /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 <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
+