mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-22 19:06:35 +00:00
BatchPacket payload checks, fix crashes when older versions try to join
This commit is contained in:
parent
5eb2459355
commit
b1df4728d3
@ -220,12 +220,17 @@ class Network{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function processBatch(BatchPacket $packet, Player $p){
|
public function processBatch(BatchPacket $packet, Player $p){
|
||||||
$str = zlib_decode($packet->payload, 1024 * 1024 * 64); //Max 64MB
|
|
||||||
try{
|
try{
|
||||||
|
if(strlen($packet->payload) === 0){
|
||||||
|
//prevent zlib_decode errors for incorrectly-decoded packets
|
||||||
|
throw new \InvalidArgumentException("BatchPacket payload is empty or packet decode error");
|
||||||
|
}
|
||||||
|
|
||||||
|
$str = zlib_decode($packet->payload, 1024 * 1024 * 64); //Max 64MB
|
||||||
$len = strlen($str);
|
$len = strlen($str);
|
||||||
|
|
||||||
if($len === 0){
|
if($len === 0){
|
||||||
throw new \InvalidStateException("Empty or invalid BatchPacket received");
|
throw new \InvalidStateException("Decoded BatchPacket payload is empty");
|
||||||
}
|
}
|
||||||
|
|
||||||
$stream = new BinaryStream($str);
|
$stream = new BinaryStream($str);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user