On WM_GETTEXT, terminate the lparam buffer even if string is empty.

diff --git a/windows/defwnd.c b/windows/defwnd.c
index 232a16f..99a8980 100644
--- a/windows/defwnd.c
+++ b/windows/defwnd.c
@@ -794,15 +794,19 @@
         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 @@
         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;