[PATCH] ImmSetCompositionString: sanity check dwIndex

Marcus Meissner marcus at jet.franken.de
Sun Oct 5 04:46:30 CDT 2008


Hi,

Sanity check dwIndex in ImmSetCompositionString* before
using it further, return FALSE if not unknown.

Should speed up Fantasy IX.

Ciao, Marcus
---
 dlls/imm32/imm.c |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/dlls/imm32/imm.c b/dlls/imm32/imm.c
index 2c9489a..7f13753 100644
--- a/dlls/imm32/imm.c
+++ b/dlls/imm32/imm.c
@@ -2002,6 +2002,14 @@ BOOL WINAPI ImmSetCompositionStringA(
     TRACE("(%p, %d, %p, %d, %p, %d):\n",
             hIMC, dwIndex, lpComp, dwCompLen, lpRead, dwReadLen);
 
+    if (dwIndex != SCS_SETSTR && dwIndex != SCS_CHANGEATTR && dwIndex !=
+        SCS_CHANGECLAUSE && dwIndex != SCS_SETRECONVERTSTRING && dwIndex !=
+        SCS_QUERYRECONVERTSTRING)
+    {
+        TRACE("Invalid dwIndex %d parameter specified\n", dwIndex);
+        return FALSE;
+    }
+
     if (!data)
         return FALSE;
 
@@ -2050,6 +2058,14 @@ BOOL WINAPI ImmSetCompositionStringW(
     TRACE("(%p, %d, %p, %d, %p, %d):\n",
             hIMC, dwIndex, lpComp, dwCompLen, lpRead, dwReadLen);
 
+    if (dwIndex != SCS_SETSTR && dwIndex != SCS_CHANGEATTR && dwIndex !=
+        SCS_CHANGECLAUSE && dwIndex != SCS_SETRECONVERTSTRING && dwIndex !=
+        SCS_QUERYRECONVERTSTRING)
+    {
+        TRACE("Invalid dwIndex %d parameter specified\n", dwIndex);
+        return FALSE;
+    }
+
     if (!data)
         return FALSE;
 
-- 
1.5.6



More information about the wine-patches mailing list