From a80d93c5e9f022a38ef41e4a1f96bf974f3392a4 Mon Sep 17 00:00:00 2001 From: Vitaliy Margolen Date: Mon, 19 Dec 2005 18:16:18 +0100 Subject: [PATCH] user: Fix LB_GETTEXT unmapping for A<->W. --- dlls/user/winproc.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dlls/user/winproc.c b/dlls/user/winproc.c index ff5ceaf72cd..7cfc07720b5 100644 --- a/dlls/user/winproc.c +++ b/dlls/user/winproc.c @@ -956,8 +956,9 @@ LRESULT WINPROC_UnmapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa if ( WINPROC_TestLBForStr( hwnd )) { LPARAM *ptr = (LPARAM *)lParam - 1; - result = WideCharToMultiByte( CP_ACP, 0, (LPWSTR)lParam, -1, - (LPSTR)*ptr, 0x7fffffff, NULL, NULL ) - 1; + if (result >= 0) + result = WideCharToMultiByte( CP_ACP, 0, (LPWSTR)lParam, -1, + (LPSTR)*ptr, 0x7fffffff, NULL, NULL ) - 1; HeapFree( GetProcessHeap(), 0, ptr ); } break; @@ -1224,7 +1225,8 @@ static LRESULT WINPROC_UnmapMsg32WTo32A( HWND hwnd, UINT msg, WPARAM wParam, LPA if ( WINPROC_TestLBForStr( hwnd )) { LPARAM *ptr = (LPARAM *)lParam - 1; - result = MultiByteToWideChar( CP_ACP, 0, (LPSTR)lParam, -1, (LPWSTR)*ptr, 0x7fffffff ) - 1; + if (result >= 0) + result = MultiByteToWideChar( CP_ACP, 0, (LPSTR)lParam, -1, (LPWSTR)*ptr, 0x7fffffff ) - 1; HeapFree( GetProcessHeap(), 0, ptr ); } break; -- 2.11.4.GIT