]> git.eshelyaron.com Git - emacs.git/commitdiff
(w32_wnd_proc, Fw32_reconstruct_hot_key): Range check
authorJason Rumney <jasonr@gnu.org>
Thu, 13 Dec 2007 15:53:26 +0000 (15:53 +0000)
committerJason Rumney <jasonr@gnu.org>
Thu, 13 Dec 2007 15:53:26 +0000 (15:53 +0000)
before dereferencing array.
(lookup_vk_code): Remove zero comparison.

src/ChangeLog
src/w32fns.c

index 87f9894f488cd426e1f4b143c75beafa560dba31..7d2240f78298efaf1944513d0ecf25fa09d0f8ec 100644 (file)
@@ -1,3 +1,9 @@
+2007-12-13  Jason Rumney  <jasonr@gnu.org>
+
+       * w32fns.c (w32_wnd_proc, Fw32_reconstruct_hot_key): Range check
+       before dereferencing array.
+       (lookup_vk_code): Remove zero comparison.
+
 2007-12-02  Magnus Henoch  <mange@freemail.hu>
 
        * process.c (make_process): Initialize pty_flag to 0.
index a006531f2b33df57489d7a5932d8f85d4d5c7c04..9492989e735b650e5a6d0813ec1c4a659bd68a19 100644 (file)
@@ -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);