xserver: Branch 'server-1.20-branch' - 2 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Oct 17 23:06:25 UTC 2019


 xkb/xkb.c |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit b6ee04e774af1fc2e2560583c95dfac688494c2a
Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
Date:   Mon Jul 1 02:31:02 2019 +0200

    Fix crash on XkbSetMap
    
    Some devices may not have keyboard information.
    
    Fixes #574
    
    (cherry picked from commit 8469bfead9515ab3644f1769a1ff51466ba8ffee)

diff --git a/xkb/xkb.c b/xkb/xkb.c
index f09143050..3162574a4 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -2386,6 +2386,9 @@ _XkbSetMapChecks(ClientPtr client, DeviceIntPtr dev, xkbSetMapReq * req,
     XkbSymMapPtr map;
     int i;
 
+    if (!dev->key)
+        return 0;
+
     xkbi = dev->key->xkbInfo;
     xkb = xkbi->desc;
 
@@ -2498,6 +2501,9 @@ _XkbSetMap(ClientPtr client, DeviceIntPtr dev, xkbSetMapReq * req, char *values)
     XkbSrvInfoPtr xkbi;
     XkbDescPtr xkb;
 
+    if (!dev->key)
+        return Success;
+
     xkbi = dev->key->xkbInfo;
     xkb = xkbi->desc;
 
commit 616b3e1dd19d51688e4cba380394bd93c62b50d4
Author: Samuel Thibault <samuel.thibault at ens-lyon.org>
Date:   Mon Jul 1 02:33:26 2019 +0200

    Fix crash on XkbSetMap
    
    Since group_info and width are used for the key actions allocations,
    when modifying them we need to take care of reallocation key actions if
    needed.
    
    (cherry picked from commit fabc4219622f3c0b41b1cb897c46e092377059e3)

diff --git a/xkb/xkb.c b/xkb/xkb.c
index 764079506..f09143050 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -2110,6 +2110,9 @@ SetKeySyms(ClientPtr client,
                 }
             }
         }
+        if (XkbKeyHasActions(xkb, i + req->firstKeySym))
+            XkbResizeKeyActions(xkb, i + req->firstKeySym,
+                                XkbNumGroups(wire->groupInfo) * wire->width);
         oldMap->kt_index[0] = wire->ktIndex[0];
         oldMap->kt_index[1] = wire->ktIndex[1];
         oldMap->kt_index[2] = wire->ktIndex[2];


More information about the xorg-commit mailing list