xserver: Branch 'master'

Peter Hutterer whot at kemper.freedesktop.org
Wed Jun 29 09:20:28 UTC 2016


 xkb/xkb.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

New commits:
commit d135100d6b17e54262a12aeaebe0fe2fe48da3bb
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Jun 28 11:42:41 2016 +1000

    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 at who-t.net>
    Reviewed-by: Julien Cristau <jcristau at debian.org>
    Reviewed-by: Daniel Stone <daniels at collabora.com>

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;
 }


More information about the xorg-commit mailing list