summaryrefslogtreecommitdiff
path: root/src/network/network_client.cpp
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2011-01-01 17:02:29 +0000
committersmatz <smatz@openttd.org>2011-01-01 17:02:29 +0000
commit666fbb28c273ab94ac854b7cdda22c0881a24dba (patch)
tree51f25f1aec5ad360d95379feb4a5d4a586873305 /src/network/network_client.cpp
parent62bc55cf7be5afc1c70bdd358e2d2748163f2881 (diff)
downloadopenttd-666fbb28c273ab94ac854b7cdda22c0881a24dba.tar.xz
(svn r21687) -Fix: verify the colour code we received from the server is valid
Diffstat (limited to 'src/network/network_client.cpp')
-rw-r--r--src/network/network_client.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp
index a0a828a37..fbc5809df 100644
--- a/src/network/network_client.cpp
+++ b/src/network/network_client.cpp
@@ -1067,12 +1067,13 @@ DEF_GAME_RECEIVE_COMMAND(Client, PACKET_SERVER_RCON)
{
if (this->status < STATUS_AUTHORIZED) return NETWORK_RECV_STATUS_MALFORMED_PACKET;
- char rcon_out[NETWORK_RCONCOMMAND_LENGTH];
+ uint colour_code = p->Recv_uint16();
+ if (!IsValidConsoleColour(colour_code)) return NETWORK_RECV_STATUS_MALFORMED_PACKET;
- ConsoleColour colour_code = (ConsoleColour)p->Recv_uint16();
+ char rcon_out[NETWORK_RCONCOMMAND_LENGTH];
p->Recv_string(rcon_out, sizeof(rcon_out));
- IConsolePrint(colour_code, rcon_out);
+ IConsolePrint((ConsoleColour)colour_code, rcon_out);
return NETWORK_RECV_STATUS_OKAY;
}