From 02bf3b7c1393c507539a21b312dadff4eae1d270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Fri, 15 Jul 2005 23:57:51 +0000 Subject: [PATCH] added some checks, this shouldn't be needed with a consistent keymap, but as we don't want to crash in this case ... (could help DarkWyrm) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13692 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/input_server/devices/keyboard/Keymap.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/add-ons/input_server/devices/keyboard/Keymap.cpp b/src/add-ons/input_server/devices/keyboard/Keymap.cpp index 00f8c4aa4a..fa6609b54a 100644 --- a/src/add-ons/input_server/devices/keyboard/Keymap.cpp +++ b/src/add-ons/input_server/devices/keyboard/Keymap.cpp @@ -227,7 +227,9 @@ Keymap::IsDeadSecondKey(uint32 keyCode, uint32 modifiers, uint8 activeDeadKey) case B_CONTROL_KEY: offset = fKeys.control_map[keyCode]; break; default: offset = fKeys.normal_map[keyCode]; break; } - + + if (offset <= 0) + return false; uint32 numBytes = fChars[offset]; if (!numBytes) @@ -298,7 +300,9 @@ Keymap::GetChars(uint32 keyCode, uint32 modifiers, uint8 activeDeadKey, char** c case B_CONTROL_KEY: offset = fKeys.control_map[keyCode]; break; default: offset = fKeys.normal_map[keyCode]; break; } - + + if (offset <= 0) + return; // here we get the char size *numBytes = fChars[offset];