From f9340ff94d08800b7aa8d652b343ce413722c079 Mon Sep 17 00:00:00 2001 From: Duane Clark Date: Wed, 20 Mar 2002 01:31:03 +0000 Subject: [PATCH] On WM_GETTEXT, terminate the lparam buffer even if string is empty. --- windows/defwnd.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/windows/defwnd.c b/windows/defwnd.c index 232a16f76d2..99a8980bf97 100644 --- a/windows/defwnd.c +++ b/windows/defwnd.c @@ -794,15 +794,19 @@ LRESULT WINAPI DefWindowProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam break; case WM_GETTEXT: + if (wParam) { + LPSTR dest = (LPSTR)lParam; WND *wndPtr = WIN_GetPtr( hwnd ); - if (wParam && wndPtr && wndPtr->text) + + if (!wndPtr) break; + if (wndPtr->text) { - LPSTR dest = (LPSTR)lParam; if (!WideCharToMultiByte( CP_ACP, 0, wndPtr->text, -1, dest, wParam, NULL, NULL )) dest[wParam-1] = 0; result = strlen( dest ); } + else dest[0] = '\0'; WIN_ReleasePtr( wndPtr ); } break; @@ -928,14 +932,18 @@ LRESULT WINAPI DefWindowProcW( break; case WM_GETTEXT: + if (wParam) { + LPWSTR dest = (LPWSTR)lParam; WND *wndPtr = WIN_GetPtr( hwnd ); - if (wParam && wndPtr && wndPtr->text) + + if (!wndPtr) break; + if (wndPtr->text) { - LPWSTR dest = (LPWSTR)lParam; lstrcpynW( dest, wndPtr->text, wParam ); result = strlenW( dest ); } + else dest[0] = '\0'; WIN_ReleasePtr( wndPtr ); } break; -- 2.11.4.GIT