Changeset - r16941:0a0031118a21
[Not reviewed]
master
0 2 0
smatz - 14 years ago 2011-01-01 17:02:29
smatz@openttd.org
(svn r21687) -Fix: verify the colour code we received from the server is valid
2 files changed with 10 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/console_type.h
Show inline comments
 
@@ -30,4 +30,10 @@ enum ConsoleColour {
 
	CC_WHITE   = 12,
 
};
 

	
 
static inline bool IsValidConsoleColour(uint c)
 
{
 
	return c == CC_DEFAULT || c == CC_ERROR || c == CC_WARNING || c == CC_INFO ||
 
			c == CC_DEBUG || c == CC_COMMAND || c == CC_WHITE;
 
}
 

	
 
#endif /* CONSOLE_TYPE_H */
src/network/network_client.cpp
Show inline comments
 
@@ -1067,12 +1067,13 @@ DEF_GAME_RECEIVE_COMMAND(Client, PACKET_
 
{
 
	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;
 
}
0 comments (0 inline, 0 general)