(svn r4667) - Backport from trunk (r4291): 0.4
authorDarkvater
Tue, 02 May 2006 13:00:07 +0000
branch0.4
changeset 9982 6f21b86be9af
parent 9981 aece6eeba0e2
child 9983 f04c5d60e63f
(svn r4667) - Backport from trunk (r4291):
Fix: validate all received strings for correctness. This fixes
potential crashes on hacked clients/servers
network_data.c
network_udp.c
--- a/network_data.c	Tue May 02 12:58:13 2006 +0000
+++ b/network_data.c	Tue May 02 13:00:07 2006 +0000
@@ -273,6 +273,7 @@
 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 @@
 		++pos;
 	}
 	p->pos = pos;
+
+	str_validate(bufp);
 }
 
 // If PacketSize changes of size, you have to change the 2 packet->size
--- a/network_udp.c	Tue May 02 12:58:13 2006 +0000
+++ b/network_udp.c	Tue May 02 13:00:07 2006 +0000
@@ -134,9 +134,6 @@
 			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;