From a357a29a5541d5c3c08ea484ae3d68d30af1faa9 Mon Sep 17 00:00:00 2001 From: Aric Stewart Date: Thu, 2 Jun 2016 13:29:24 -0500 Subject: [PATCH] winex11.drv: Correct sizes in COMPOSITIONSTRING structure when updating fields. Signed-off-by: Aric Stewart Signed-off-by: Alexandre Julliard --- dlls/winex11.drv/ime.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/dlls/winex11.drv/ime.c b/dlls/winex11.drv/ime.c index ee622c1cbbb..06576dd03f4 100644 --- a/dlls/winex11.drv/ime.c +++ b/dlls/winex11.drv/ime.c @@ -217,11 +217,11 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, DWORD len) { needed_size += lpcs->dwCompReadAttrLen; needed_size += lpcs->dwCompReadClauseLen; - needed_size += lpcs->dwCompReadStrLen * sizeof(DWORD); + needed_size += lpcs->dwCompReadStrLen * sizeof(WCHAR); needed_size += lpcs->dwResultReadClauseLen; - needed_size += lpcs->dwResultReadStrLen * sizeof(DWORD); + needed_size += lpcs->dwResultReadStrLen * sizeof(WCHAR); needed_size += lpcs->dwResultClauseLen; - needed_size += lpcs->dwResultStrLen * sizeof(DWORD); + needed_size += lpcs->dwResultStrLen * sizeof(WCHAR); needed_size += lpcs->dwPrivateSize; } rc = ImmCreateIMCC(needed_size); @@ -304,6 +304,8 @@ static HIMCC updateCompStr(HIMCC old, LPCWSTR compstr, DWORD len) *(DWORD*)(&newdata[current_offset]) = len; current_offset += sizeof(DWORD); } + else + new_one->dwCompClauseLen = 0; /* CompStr */ new_one->dwCompStrLen = len; @@ -359,12 +361,12 @@ static HIMCC updateResultStr(HIMCC old, LPWSTR resultstr, DWORD len) { needed_size += lpcs->dwCompReadAttrLen; needed_size += lpcs->dwCompReadClauseLen; - needed_size += lpcs->dwCompReadStrLen * sizeof(DWORD); + needed_size += lpcs->dwCompReadStrLen * sizeof(WCHAR); needed_size += lpcs->dwCompAttrLen; needed_size += lpcs->dwCompClauseLen; - needed_size += lpcs->dwCompStrLen * sizeof(DWORD); + needed_size += lpcs->dwCompStrLen * sizeof(WCHAR); needed_size += lpcs->dwResultReadClauseLen; - needed_size += lpcs->dwResultReadStrLen * sizeof(DWORD); + needed_size += lpcs->dwResultReadStrLen * sizeof(WCHAR); needed_size += lpcs->dwPrivateSize; } rc = ImmCreateIMCC(needed_size); @@ -446,6 +448,8 @@ static HIMCC updateResultStr(HIMCC old, LPWSTR resultstr, DWORD len) *(DWORD*)(&newdata[current_offset]) = len; current_offset += sizeof(DWORD); } + else + new_one->dwResultClauseLen = 0; /* ResultStr */ new_one->dwResultStrLen = len;