Fix segfault caused by forced indicator update (#1335439)
This commit is contained in:
parent
136c5ded48
commit
9ad47a897e
@ -0,0 +1,45 @@
|
|||||||
|
From ed4f5ebde487bda2b8bda4cb4a1455f41a7c2933 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Date: Tue, 28 Jun 2016 11:42:41 +1000
|
||||||
|
Subject: [PATCH xserver] xkb: add a cause to the xkb indicator update after a
|
||||||
|
keymap change
|
||||||
|
|
||||||
|
Regression introduce by ac164e58870d which calls
|
||||||
|
XkbUpdateAllDeviceIndicators() with two NULL arguments. A few layers down into
|
||||||
|
the stack and we triggered a NULL-pointer dereference. In theory a NULL cause
|
||||||
|
is acceptable since we don't actually change modifier state here. Instead of
|
||||||
|
updating all places to check for NULL just set the cause to the client
|
||||||
|
request and go to the pub.
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=96384
|
||||||
|
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
---
|
||||||
|
xkb/xkb.c | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/xkb/xkb.c b/xkb/xkb.c
|
||||||
|
index 3a6ad65..678f823 100644
|
||||||
|
--- a/xkb/xkb.c
|
||||||
|
+++ b/xkb/xkb.c
|
||||||
|
@@ -5706,6 +5706,7 @@ ProcXkbGetKbdByName(ClientPtr client)
|
||||||
|
xkbGetGeometryReply grep = { 0 };
|
||||||
|
XkbComponentNamesRec names = { 0 };
|
||||||
|
XkbDescPtr xkb, new;
|
||||||
|
+ XkbEventCauseRec cause;
|
||||||
|
unsigned char *str;
|
||||||
|
char mapFile[PATH_MAX];
|
||||||
|
unsigned len;
|
||||||
|
@@ -6016,7 +6017,8 @@ ProcXkbGetKbdByName(ClientPtr client)
|
||||||
|
new = NULL;
|
||||||
|
}
|
||||||
|
XkbFreeComponentNames(&names, FALSE);
|
||||||
|
- XkbUpdateAllDeviceIndicators(NULL, NULL);
|
||||||
|
+ XkbSetCauseXkbReq(&cause, X_kbGetKbdByName, client);
|
||||||
|
+ XkbUpdateAllDeviceIndicators(NULL, &cause);
|
||||||
|
|
||||||
|
return Success;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
@ -45,7 +45,7 @@
|
|||||||
Summary: X.Org X11 X server
|
Summary: X.Org X11 X server
|
||||||
Name: xorg-x11-server
|
Name: xorg-x11-server
|
||||||
Version: 1.18.3
|
Version: 1.18.3
|
||||||
Release: 6%{?gitdate:.%{gitdate}}%{dist}
|
Release: 7%{?gitdate:.%{gitdate}}%{dist}
|
||||||
URL: http://www.x.org
|
URL: http://www.x.org
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: User Interface/X
|
Group: User Interface/X
|
||||||
@ -111,6 +111,7 @@ Patch10003: 0002-present-Fix-presentation-of-flips-out-of-order.patch
|
|||||||
|
|
||||||
# Bug 1047151 - Numlock LED incorrect after keyboard map switch
|
# Bug 1047151 - Numlock LED incorrect after keyboard map switch
|
||||||
Patch10004: 0001-xkb-after-changing-the-keymap-force-an-indicator-upd.patch
|
Patch10004: 0001-xkb-after-changing-the-keymap-force-an-indicator-upd.patch
|
||||||
|
Patch10005: 0001-xkb-add-a-cause-to-the-xkb-indicator-update-after-a-.patch
|
||||||
|
|
||||||
%global moduledir %{_libdir}/xorg/modules
|
%global moduledir %{_libdir}/xorg/modules
|
||||||
%global drimoduledir %{_libdir}/dri
|
%global drimoduledir %{_libdir}/dri
|
||||||
@ -649,6 +650,9 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jun 28 2016 Peter Hutterer <peter.hutterer@redhat.com> 1.18.3-7
|
||||||
|
- Fix segfault caused by forced indicator update (#1335439)
|
||||||
|
|
||||||
* Fri Jun 17 2016 Hans de Goede <hdegoede@redhat.com> - 1.18.3-6
|
* Fri Jun 17 2016 Hans de Goede <hdegoede@redhat.com> - 1.18.3-6
|
||||||
- Add switchable-graphics / prime fixes from f24 branch
|
- Add switchable-graphics / prime fixes from f24 branch
|
||||||
- Add some more switchable-graphics / prime fixes from upstream
|
- Add some more switchable-graphics / prime fixes from upstream
|
||||||
|
Loading…
Reference in New Issue
Block a user