X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fnetserv.c;h=73d35fb32de81a044726b4c0d008a274172cddee;hp=eef7aa111e43466b56be71b44afa311e259b3c7f;hb=6cf34a189f4a3707c9131652621dd67731f14f6b;hpb=bb49e2b2a9bb4aefe76182be725e998bf9495976 diff --git a/src/netserv.c b/src/netserv.c index eef7aa11..73d35fb3 100644 --- a/src/netserv.c +++ b/src/netserv.c @@ -187,6 +187,14 @@ static void increaseNetworkBuffer(struct NetworkBuffer *nb, int additional_size) int receiveNetworkBufferBytes(struct NetworkBuffer *nb, TCPsocket socket, int num_bytes) { + if (num_bytes > MAX_PACKET_SIZE) + { + Error(ERR_NETWORK_SERVER, "protocol error: invalid packet size %d", + num_bytes); + + return -1; + } + if (nb->pos + num_bytes > nb->max_size) increaseNetworkBuffer(nb, num_bytes);