diff --git a/xkb/xkb.c b/xkb/xkb.c index 1bc40c36d6..b0440fdf3f 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -5900,6 +5900,9 @@ ProcXkbGetKbdByName(ClientPtr client) if (!(client->xkbClientFlags & _XkbClientInitialized)) return BadAccess; + CHK_MASK_LEGAL(0x01, stuff->want, XkbGBN_AllComponentsMask); + CHK_MASK_LEGAL(0x02, stuff->need, XkbGBN_AllComponentsMask); + CHK_KBD_DEVICE(dev, stuff->deviceSpec, client, access_mode); master = GetMaster(dev, MASTER_KEYBOARD); @@ -5937,9 +5940,6 @@ ProcXkbGetKbdByName(ClientPtr client) return status; } - CHK_MASK_LEGAL(0x01, stuff->want, XkbGBN_AllComponentsMask); - CHK_MASK_LEGAL(0x02, stuff->need, XkbGBN_AllComponentsMask); - if (stuff->load) fwant = XkbGBN_AllComponentsMask; else