diff options
Diffstat (limited to 'xorg-server/dix/devices.c')
-rw-r--r-- | xorg-server/dix/devices.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/xorg-server/dix/devices.c b/xorg-server/dix/devices.c index e86e606c0..6a7907399 100644 --- a/xorg-server/dix/devices.c +++ b/xorg-server/dix/devices.c @@ -2221,12 +2221,15 @@ ProcQueryKeymap(ClientPtr client) rep.length = 2; rc = XaceHook(XACE_DEVICE_ACCESS, client, keybd, DixReadAccess); - if (rc != Success) + if (rc != Success && rc != BadAccess) return rc; for (i = 0; i<32; i++) rep.map[i] = down[i]; + if (rc == BadAccess) + memset(rep.map, 0, 32); + WriteReplyToClient(client, sizeof(xQueryKeymapReply), &rep); return Success; |