diff --git a/src/pocketmine/network/mcpe/protocol/BatchPacket.php b/src/pocketmine/network/mcpe/protocol/BatchPacket.php index d6d89de40..0c9a3e6bf 100644 --- a/src/pocketmine/network/mcpe/protocol/BatchPacket.php +++ b/src/pocketmine/network/mcpe/protocol/BatchPacket.php @@ -61,7 +61,7 @@ class BatchPacket extends DataPacket{ protected function decodePayload(){ $data = $this->getRemaining(); try{ - $this->payload = zlib_decode($data, 1024 * 1024 * 64); //Max 64MB + $this->payload = zlib_decode($data, 1024 * 1024 * 2); //Max 64MB }catch(\ErrorException $e){ //zlib decode error $this->payload = ""; } @@ -94,7 +94,11 @@ class BatchPacket extends DataPacket{ */ public function getPackets(){ $stream = new NetworkBinaryStream($this->payload); + $count = 0; while(!$stream->feof()){ + if($count++ >= 500){ + throw new \UnexpectedValueException("Too many packets in a single batch"); + } yield $stream->getString(); } }