diff --git a/src/Network/GlobalHandler.cpp b/src/Network/GlobalHandler.cpp index da4b6f2..b410886 100644 --- a/src/Network/GlobalHandler.cpp +++ b/src/Network/GlobalHandler.cpp @@ -206,6 +206,7 @@ void ParserAsync(std::string_view Data) { return; case 'U': magic = Data.substr(1); + return; default: break; } diff --git a/src/Network/Resources.cpp b/src/Network/Resources.cpp index 1696dde..7904d1a 100644 --- a/src/Network/Resources.cpp +++ b/src/Network/Resources.cpp @@ -163,7 +163,11 @@ std::vector TCPRcvRaw(SOCKET Sock, uint64_t& GRcv, uint64_t Size) { int i = 0; do { // receive at most some MB at a time - int Len = std::min(int(Size - Rcv), 1 * 1024 * 1024); + uint64_t Len = std::min((Size - Rcv), 1 * 1024 * 1024); + if (Len == 0) { + error("Download size miscalculation"); + break; + } int Temp = recv(Sock, &File[Rcv], Len, MSG_WAITALL); if (Temp == -1 || Temp == 0) { debug("Recv returned: " + std::to_string(Temp)); @@ -579,7 +583,12 @@ void NewSyncResources(SOCKET Sock, const std::string& Mods, const std::vector