changeset 3456:de3e234848a6 draft

(svn r4291) - Fix: validate all received strings for correctness. This fixes potential crashes on invalid clients/servers (thanks test for bringing this to our attention)
author Darkvater <Darkvater@openttd.org>
date Wed, 05 Apr 2006 20:11:01 +0000
parents 4060ea113a0b
children e8fd835b8972
files network_data.c network_udp.c
diffstat 2 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/network_data.c
+++ b/network_data.c
@@ -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
+++ b/network_udp.c
@@ -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;