diff options
author | Darkvater <darkvater@openttd.org> | 2006-04-05 20:11:01 +0000 |
---|---|---|
committer | Darkvater <darkvater@openttd.org> | 2006-04-05 20:11:01 +0000 |
commit | a39f69b9bdae00cab5d28c1ece34c90d94a7fbd9 (patch) | |
tree | badd698cd191d5490e88203f9017e689ea1e2518 /network_data.c | |
parent | 07e4134ebdf59576ec3d69207e23d00929b416d5 (diff) | |
download | openttd-a39f69b9bdae00cab5d28c1ece34c90d94a7fbd9.tar.xz |
(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)
Diffstat (limited to 'network_data.c')
-rw-r--r-- | network_data.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/network_data.c b/network_data.c index ffb4bdddc..977e08447 100644 --- a/network_data.c +++ b/network_data.c @@ -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 |