[TCPSVCS]

- Fix buffer overrun
- Fix memory leak
- Properly init memory

CID #511073
CID #1102322
CID #1102405

svn path=/trunk/; revision=62648
This commit is contained in:
Pierre Schweitzer 2014-04-06 12:44:10 +00:00
parent ad8c33fa00
commit 75555432ba
2 changed files with 6 additions and 1 deletions

View file

@ -58,7 +58,7 @@ RetrieveQuote(SOCKET sock)
else
{
DWORD dwSize = GetFileSize(hFile, NULL);
lpQuotes = (LPSTR)HeapAlloc(GetProcessHeap(), 0, dwSize);
lpQuotes = (LPSTR)HeapAlloc(GetProcessHeap(), 0, dwSize + 1);
if (!lpQuotes)
{
CloseHandle(hFile);
@ -75,7 +75,10 @@ RetrieveQuote(SOCKET sock)
lpQuotes[dwSize] = 0;
if (dwBytesRead != dwSize)
{
HeapFree(GetProcessHeap(), 0, lpQuotes);
return FALSE;
}
lpStr = lpQuotes;
while (*lpStr)
@ -120,6 +123,7 @@ RetrieveQuote(SOCKET sock)
}
}
HeapFree(GetProcessHeap(), 0, lpQuotes);
return TRUE;
}

View file

@ -21,6 +21,7 @@ SetUpListener(USHORT Port)
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock != INVALID_SOCKET)
{
ZeroMemory(&server, sizeof(SOCKADDR_IN));
server.sin_family = AF_INET;
server.sin_addr.s_addr = htonl(INADDR_ANY);
server.sin_port = Port;