diff options
-rw-r--r-- | lib/win32/emu.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/win32/emu.cpp b/lib/win32/emu.cpp index c03e491a..112b1c9f 100644 --- a/lib/win32/emu.cpp +++ b/lib/win32/emu.cpp @@ -978,7 +978,7 @@ int emu_chmod(const char * pName, mode_t mode) return -1; } - free(pBuffer); + delete [] pBuffer; return 0; } @@ -1621,7 +1621,7 @@ int console_read(char* pBuffer, size_t BufferSize) } size_t WideSize = BufferSize / 5; - WCHAR* pWideBuffer = new WCHAR [WideSize]; + WCHAR* pWideBuffer = new WCHAR [WideSize + 1]; if (!pWideBuffer) { @@ -1647,6 +1647,8 @@ int console_read(char* pBuffer, size_t BufferSize) pWideBuffer[numCharsRead] = 0; char* pUtf8 = ConvertFromWideString(pWideBuffer, GetConsoleCP()); + delete [] pWideBuffer; + strncpy(pBuffer, pUtf8, BufferSize); delete [] pUtf8; |