diff options
author | Chris Wilson <chris+github@qwirx.com> | 2007-03-10 17:38:48 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2007-03-10 17:38:48 +0000 |
commit | 3b161e80a045f1ebb11e196b7f514b96c302b746 (patch) | |
tree | f2cc84d26d844670f4565554734e176f061e90bf /lib/win32 | |
parent | fc15dd1a4f59addd990c3f86f32b80b3376be8f7 (diff) |
Fix two memory leaks and one buffer overflow in codepage conversion code.
(refs #3, merges [1340])
Diffstat (limited to 'lib/win32')
-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; |