From 909df9beb3ddd02632f36ae682537280a6a8e5b4 Mon Sep 17 00:00:00 2001 From: Jon TURNEY Date: Tue, 20 Oct 2009 12:57:05 +0100 Subject: [PATCH] Resolve an inconsistency between libX11 and Xserver over GetModifierMapping libX11 ModMap.c believes that GetModifierMapping can never return an error Xserver devices.c believes that GetModifierMapping can return an error if the ModMap couldn't be generated According to the protocol document I have, libX11 is right, so adjust the server to send back an empty modmap if one couldn't be made... http://bugs.freedesktop.org/show_bug.cgi?id=24621 Reviewed-by: Peter Hutterer Signed-off-by: Keith Packard --- dix/devices.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/dix/devices.c b/dix/devices.c index 6a7907399..7486827f9 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -1520,14 +1520,12 @@ int ProcGetModifierMapping(ClientPtr client) { xGetModifierMappingReply rep; - int ret, max_keys_per_mod = 0; + int max_keys_per_mod = 0; KeyCode *modkeymap = NULL; REQUEST_SIZE_MATCH(xReq); - ret = generate_modkeymap(client, PickKeyboard(client), &modkeymap, - &max_keys_per_mod); - if (ret != Success) - return ret; + generate_modkeymap(client, PickKeyboard(client), &modkeymap, + &max_keys_per_mod); memset(&rep, 0, sizeof(xGetModifierMappingReply)); rep.type = X_Reply;