fix stack overflow

This commit is contained in:
quaK 2025-05-01 15:00:20 +03:00
parent a75c616e68
commit 157ed4db6e

View File

@ -68,13 +68,6 @@ namespace network
return utils::hook::invoke<bool>(0x1409B2250, client_num, from, msg, time);
}
int dw_send_to_stub(const int length, const char* data, game::netadr_s* to)
{
sockaddr s = {};
game::NetadrToSockadr(to, &s);
return sendto(*game::query_socket, data, length, 0, &s, sizeof(sockaddr));
}
void sockadr_to_netadr(const sockaddr* s, game::netadr_s* a)
{
if (s->sa_family == 2)
@ -85,6 +78,18 @@ namespace network
}
}
int dw_send_to_stub(const int length, const char* data, game::netadr_s* to)
{
sockaddr s = {};
game::NetadrToSockadr(to, &s);
const auto result = sendto(*game::query_socket, data, length, 0, &s, sizeof(sockaddr));
if (result == SOCKET_ERROR)
{
console::warn("sendto failed: %s\n", std::system_category().message(GetLastError()).data());
}
return result;
}
int dw_recv_from_stub(game::netadr_s* from, char* data, int maxsize)
{
sockaddr s = {};
@ -249,19 +254,14 @@ namespace network
void send_data(const game::netadr_s& address, const std::string& data)
{
auto size = static_cast<int>(data.size());
if (address.type == game::NA_LOOPBACK)
{
if (size > 1280)
{
console::error("Packet was too long. Truncated!\n");
size = 1280;
}
game::NET_SendLoopPacket(game::NS_CLIENT1, size, data.data(), &address);
}
else
else if(address.type == game::NA_BROADCAST || address.type == game::NA_IP)
{
game::Sys_SendPacket(size, data.data(), &address);
dw_send_to_stub(size, data.data(), const_cast<game::netadr_s*>(&address));
}
}