From: Hartmut Birr Date: Sat, 10 Sep 2005 15:18:42 +0000 (+0000) Subject: Fixed GetConsoleTitleA/W. X-Git-Tag: ReactOS-0.2.8~643 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=a03dfb523519838133c4c27711f81a8f8eb7ded7 Fixed GetConsoleTitleA/W. svn path=/trunk/; revision=17777 --- diff --git a/reactos/lib/kernel32/misc/console.c b/reactos/lib/kernel32/misc/console.c index c36154103e7..6b7cb30dec2 100644 --- a/reactos/lib/kernel32/misc/console.c +++ b/reactos/lib/kernel32/misc/console.c @@ -3056,18 +3056,17 @@ GetConsoleTitleW( return 0; } - if(nSize * sizeof(WCHAR) < Request->Data.GetTitleRequest.Length) + if(nSize * sizeof(WCHAR) <= Request->Data.GetTitleRequest.Length) { - wcsncpy(lpConsoleTitle, Request->Data.GetTitleRequest.Title, nSize - 1); - lpConsoleTitle[nSize--] = L'\0'; + nSize--; } else { nSize = Request->Data.GetTitleRequest.Length / sizeof (WCHAR); - wcscpy(lpConsoleTitle, Request->Data.GetTitleRequest.Title); - lpConsoleTitle[nSize] = L'\0'; } - + memcpy(lpConsoleTitle, Request->Data.GetTitleRequest.Title, nSize * sizeof(WCHAR)); + lpConsoleTitle[nSize] = L'\0'; + RtlFreeHeap(RtlGetProcessHeap(), 0, Request); return nSize; @@ -3088,8 +3087,8 @@ GetConsoleTitleA( DWORD nSize ) { - wchar_t WideTitle [CSRSS_MAX_TITLE_LENGTH]; - DWORD nWideTitle = sizeof WideTitle; + WCHAR WideTitle [CSRSS_MAX_TITLE_LENGTH + 1]; + DWORD nWideTitle = CSRSS_MAX_TITLE_LENGTH + 1; DWORD nWritten; if (!lpConsoleTitle || !nSize) return 0; @@ -3102,7 +3101,7 @@ GetConsoleTitleA( (LPWSTR) WideTitle, // address of wide-character string nWideTitle, // number of characters in string lpConsoleTitle, // address of buffer for new string - nSize, // size of buffer + nSize - 1, // size of buffer NULL, // FAST NULL // FAST )))