Author: khornicek
Date: Thu Feb  2 11:07:01 2017
New Revision: 73668

URL: http://svn.reactos.org/svn/reactos?rev=73668&view=rev
Log:
[CALC]
- Fix a(n) (im)possible buffer overrun. Just a defensive measure in case some 
future work on calc would trigger this. CID 716050

Modified:
    trunk/reactos/base/applications/calc/winmain.c

Modified: trunk/reactos/base/applications/calc/winmain.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/calc/winmain.c?rev=73668&r1=73667&r2=73668&view=diff
==============================================================================
--- trunk/reactos/base/applications/calc/winmain.c      [iso-8859-1] (original)
+++ trunk/reactos/base/applications/calc/winmain.c      [iso-8859-1] Thu Feb  2 
11:07:01 2017
@@ -933,15 +933,18 @@
     return FALSE;
 }
 
-static WPARAM idm_2_idc(int idm)
+static BOOL idm_2_idc(int idm, WPARAM *pIdc)
 {
     int x;
 
     for (x=0; x<SIZEOF(upd); x++) {
         if (upd[x].idm == idm)
-            break;
-    }
-    return (WPARAM)(upd[x].idc);
+        {
+            *pIdc = (WPARAM)(upd[x].idc);
+            return TRUE;
+        }
+    }
+    return FALSE;
 }
 
 static void CopyMemToClipboard(void *ptr)
@@ -1408,8 +1411,15 @@
         case IDM_VIEW_DWORD:
         case IDM_VIEW_WORD:
         case IDM_VIEW_BYTE:
-            SendMessage(hWnd, WM_COMMAND, idm_2_idc(LOWORD(wp)), 0);
-            return TRUE;
+        {
+            WPARAM idc;
+            if(idm_2_idc(LOWORD(wp), &idc))
+            {
+                SendMessage(hWnd, WM_COMMAND, idc, 0);
+                return TRUE;
+            }
+            return FALSE;
+        }
         case IDM_EDIT_COPY:
             handle_copy_command(hWnd);
             return TRUE;


Reply via email to