mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-11 05:55:33 +00:00
format/leveldb: fix crash on truncated level.dat file
This commit is contained in:
parent
27350c4673
commit
e6a58e2690
@ -126,8 +126,12 @@ class LevelDB extends BaseLevelProvider{
|
||||
}
|
||||
|
||||
protected function loadLevelData() : void{
|
||||
$rawLevelData = file_get_contents($this->getPath() . "level.dat");
|
||||
if($rawLevelData === false or strlen($rawLevelData) <= 8){
|
||||
throw new LevelException("Truncated level.dat");
|
||||
}
|
||||
$nbt = new LittleEndianNBTStream();
|
||||
$levelData = $nbt->read(substr(file_get_contents($this->getPath() . "level.dat"), 8));
|
||||
$levelData = $nbt->read(substr($rawLevelData, 8));
|
||||
if($levelData instanceof CompoundTag){
|
||||
$this->levelData = $levelData;
|
||||
}else{
|
||||
|
Loading…
x
Reference in New Issue
Block a user