summaryrefslogtreecommitdiff
path: root/lib/win32
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2007-03-10 17:38:48 +0000
committerChris Wilson <chris+github@qwirx.com>2007-03-10 17:38:48 +0000
commit3b161e80a045f1ebb11e196b7f514b96c302b746 (patch)
treef2cc84d26d844670f4565554734e176f061e90bf /lib/win32
parentfc15dd1a4f59addd990c3f86f32b80b3376be8f7 (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.cpp6
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;