From bdb6ac5f940008bcd836e3c5f0a708f4b8f04865 Mon Sep 17 00:00:00 2001 From: boris Date: Sat, 29 Dec 2018 20:59:57 +1300 Subject: protection shit --- csgo-loader/csgo-server/Networking/WebSocket.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'csgo-loader/csgo-server/Networking/WebSocket.cpp') diff --git a/csgo-loader/csgo-server/Networking/WebSocket.cpp b/csgo-loader/csgo-server/Networking/WebSocket.cpp index 2c42001..75b5731 100644 --- a/csgo-loader/csgo-server/Networking/WebSocket.cpp +++ b/csgo-loader/csgo-server/Networking/WebSocket.cpp @@ -21,27 +21,30 @@ namespace Networking // Receives a response from a request. ByteArray WebSocket::Request(const char *File, const char *Header, ByteArray &Data) { + DWORD ReceivedSize{}; ByteArray Response; InternetHandle WebRequest = HttpOpenRequestA(m_Address, "POST", File, 0, 0, 0, INTERNET_FLAG_SECURE | INTERNET_FLAG_KEEP_CONNECTION, 0); + if(!WebRequest) + return Response; + // Make connection request. bool Sent = HttpSendRequestA(WebRequest, Header, (DWORD)strlen(Header), Data.data(), (DWORD)Data.size()); if(Sent) { - DWORD ReceivedSize{}; - - uint8_t *Block = (uint8_t *)malloc(4096); + // Allocate a buffer to read the response into. + uint8_t *Block = (uint8_t *)malloc(0x1000); // Read response. - while(InternetReadFile(WebRequest, Block, 4096, &ReceivedSize)) + while(InternetReadFile(WebRequest, Block, 0x1000, &ReceivedSize)) { - for(size_t n{}; n < std::min< int >(4096, ReceivedSize); ++n) - { + const size_t RequestRange = std::min< int >(0x1000, ReceivedSize); + for(size_t n{}; n < RequestRange; ++n) Response.push_back(Block[n]); - } } + // Free the buffer to avoid leaking memory. free(Block); } -- cgit v1.2.3