From 3b161e80a045f1ebb11e196b7f514b96c302b746 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Sat, 10 Mar 2007 17:38:48 +0000 Subject: Fix two memory leaks and one buffer overflow in codepage conversion code. (refs #3, merges [1340]) --- lib/win32/emu.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib/win32') 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; -- cgit v1.2.3