handle extra space after choice search result on proxy server

This commit is contained in:
Martin Michelsen
2022-04-23 10:23:59 -07:00
parent 81e8f3a88e
commit a7244b75b7
+3 -1
View File
@@ -332,7 +332,9 @@ static bool process_server_C4(shared_ptr<ServerState>,
ProxyServer::LinkedSession& session, uint16_t, uint32_t flag, string& data) {
if (session.license) {
size_t expected_size = sizeof(CmdT) * flag;
auto* entries = &check_size_t<CmdT>(data, expected_size, expected_size);
// Some servers (e.g. Schtserv) send extra data on the end of this command;
// the client ignores it so we can ignore it too
auto* entries = &check_size_t<CmdT>(data, expected_size, 0xFFFF);
for (size_t x = 0; x < flag; x++) {
if (entries[x].guild_card_number == session.remote_guild_card_number) {
entries[x].guild_card_number = session.license->serial_number;