aboutsummaryrefslogtreecommitdiffstats
path: root/src/w32fns.c
diff options
context:
space:
mode:
authorJason Rumney <[email protected]>2007-12-13 15:53:26 +0000
committerJason Rumney <[email protected]>2007-12-13 15:53:26 +0000
commitbf2540370278fcfbe6ac2423650db8fb4e357be7 (patch)
treec017ddb2fa2b503488b0f02e16e33aea82db2ae4 /src/w32fns.c
parent7d2a95143a15e69712313095aa24dd66a3b16f64 (diff)
(w32_wnd_proc, Fw32_reconstruct_hot_key): Range check
before dereferencing array. (lookup_vk_code): Remove zero comparison.
Diffstat (limited to 'src/w32fns.c')
-rw-r--r--src/w32fns.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/w32fns.c b/src/w32fns.c
index a006531f2b..9492989e73 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -2956,7 +2956,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
they don't produce WM_CHAR messages). This ensures that
indicator lights are toggled promptly on Windows 9x, for
example. */
- if (lispy_function_keys[wParam] != 0)
+ if (wParam < 256 && lispy_function_keys[wParam])
{
windows_translate = 1;
goto translate;
@@ -3078,7 +3078,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
break;
default:
/* If not defined as a function key, change it to a WM_CHAR message. */
- if (lispy_function_keys[wParam] == 0)
+ if (wParam > 255 || !lispy_function_keys[wParam])
{
DWORD modifiers = construct_console_modifiers ();
@@ -8129,7 +8129,7 @@ lookup_vk_code (char *key)
int i;
for (i = 0; i < 256; i++)
- if (lispy_function_keys[i] != 0
+ if (lispy_function_keys[i]
&& strcmp (lispy_function_keys[i], key) == 0)
return i;
@@ -8307,7 +8307,7 @@ usage: (w32-reconstruct-hot-key ID) */)
vk_code = HOTKEY_VK_CODE (hotkeyid);
w32_modifiers = HOTKEY_MODIFIERS (hotkeyid);
- if (lispy_function_keys[vk_code])
+ if (vk_code < 256 && lispy_function_keys[vk_code])
key = intern (lispy_function_keys[vk_code]);
else
key = make_number (vk_code);