1
0
Fork 0

(svn r4667) - Backport from trunk (r4291):

Fix: validate all received strings for correctness. This fixes
  potential crashes on hacked clients/servers
release/0.4
Darkvater 2006-05-02 13:00:07 +00:00
parent f8eb72e188
commit aba21dd563
2 changed files with 3 additions and 3 deletions

View File

@ -273,6 +273,7 @@ uint64 NetworkRecv_uint64(NetworkClientState *cs, Packet *packet)
void NetworkRecv_string(NetworkClientState *cs, Packet *p, char* buffer, size_t size)
{
int pos;
char *bufp = buffer;
/* Don't allow reading from a closed socket */
if (cs->quited)
@ -289,6 +290,8 @@ void NetworkRecv_string(NetworkClientState *cs, Packet *p, char* buffer, size_t
++pos;
}
p->pos = pos;
str_validate(bufp);
}
// If PacketSize changes of size, you have to change the 2 packet->size

View File

@ -134,9 +134,6 @@ DEF_UDP_RECEIVE_COMMAND(PACKET_UDP_SERVER_RESPONSE)
item->info.map_set = NetworkRecv_uint8(&_udp_cs, p);
item->info.dedicated = NetworkRecv_uint8(&_udp_cs, p);
str_validate(item->info.server_name);
str_validate(item->info.server_revision);
str_validate(item->info.map_name);
if (item->info.server_lang >= NETWORK_NUM_LANGUAGES) item->info.server_lang = 0;
if (item->info.map_set >= NUM_LANDSCAPE ) item->info.map_set = 0;