summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2009-05-11 15:30:23 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2009-05-11 15:52:33 +1000
commit29f075db9f86aa7e5e01688a5fd5e0081210e16b (patch)
treed0c217cc09508b90d029efec8b959e1e99dfdcc9
parent7a4d6f396597c4b96e1402dadfcd2c0e5b7b0579 (diff)
downloadxorg-driver-xf86-input-keyboard-29f075db9f86aa7e5e01688a5fd5e0081210e16b.tar.gz
Return BadValue if the server failed to init the keyboard. (#21278)
If keyboard init failed, we don't have a useful keymap and thus can't continue. This is essentially 0e15697b53c9448ce9911aa6499b2ea0bda92af6 from xserver ported over here. X.Org Bug 21278 <http://bugs.freedesktop.org/show_bug.cgi?id=21278> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--src/kbd.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/kbd.c b/src/kbd.c
index 767ff6b..1afa560 100644
--- a/src/kbd.c
+++ b/src/kbd.c
@@ -424,7 +424,14 @@ KbdProc(DeviceIntPtr device, int what)
rmlvo.variant = xkb_variant;
rmlvo.options = xkb_options;
- InitKeyboardDeviceStruct(device, &rmlvo, KbdBell, KbdCtrl);
+ if (!InitKeyboardDeviceStruct(device, &rmlvo, KbdBell, KbdCtrl))
+ {
+ xf86Msg(X_ERROR, "%s: Keyboard initialization failed. This "
+ "could be a missing or incorrect setup of "
+ "xkeyboard-config.\n", device->name);
+
+ return BadValue;
+ }
}
#else
{