From c211e874aa71bb3e84436dfe6ac88811defab4aa Mon Sep 17 00:00:00 2001 From: heinrich5991 Date: Wed, 8 May 2024 14:17:02 +0200 Subject: [PATCH] Fix 0.7 tokens after #8322 They're also read as big-endian integers now. Thanks to @ChillerDragon for noticing. Fixes #8330. --- src/engine/shared/network_server.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/engine/shared/network_server.cpp b/src/engine/shared/network_server.cpp index c963b8514..31a784edc 100644 --- a/src/engine/shared/network_server.cpp +++ b/src/engine/shared/network_server.cpp @@ -540,7 +540,7 @@ int CNetServer::OnSixupCtrlMsg(NETADDR &Addr, CNetChunk *pChunk, int ControlMsg, if(m_RecvUnpacker.m_Data.m_DataSize < 5 || ClientExists(Addr)) return 0; // silently ignore - mem_copy(&ResponseToken, Packet.m_aChunkData + 1, 4); + ResponseToken = ToSecurityToken(Packet.m_aChunkData + 1); if(ControlMsg == 5) { @@ -758,7 +758,7 @@ void CNetServer::SendTokenSixup(NETADDR &Addr, SECURITY_TOKEN Token) { SECURITY_TOKEN MyToken = GetToken(Addr); unsigned char aBuf[512] = {}; - mem_copy(aBuf, &MyToken, 4); + WriteSecurityToken(aBuf, MyToken); int Size = (Token == NET_SECURITY_TOKEN_UNKNOWN) ? 512 : 4; CNetBase::SendControlMsg(m_Socket, &Addr, 0, 5, aBuf, Size, Token, true); } @@ -771,8 +771,8 @@ int CNetServer::SendConnlessSixup(CNetChunk *pChunk, SECURITY_TOKEN ResponseToke unsigned char aBuffer[NET_MAX_PACKETSIZE]; aBuffer[0] = NET_PACKETFLAG_CONNLESS << 2 | 1; SECURITY_TOKEN Token = GetToken(pChunk->m_Address); - mem_copy(aBuffer + 1, &ResponseToken, 4); - mem_copy(aBuffer + 5, &Token, 4); + WriteSecurityToken(aBuffer + 1, ResponseToken); + WriteSecurityToken(aBuffer + 5, Token); mem_copy(aBuffer + 9, pChunk->m_pData, pChunk->m_DataSize); net_udp_send(m_Socket, &pChunk->m_Address, aBuffer, pChunk->m_DataSize + 9);