mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 08:17:34 +00:00
Halt NBT parsing if end of data is found
This commit is contained in:
parent
9cd5c1581b
commit
ad3bf0998f
@ -44,6 +44,10 @@ class NBT{
|
||||
return substr($this->binary, $this->offset - $n, $n);
|
||||
}
|
||||
|
||||
private function feof(){
|
||||
return !isset($this->binary{$this->offset});
|
||||
}
|
||||
|
||||
public function write($bin){
|
||||
$this->binary .= $bin;
|
||||
}
|
||||
@ -119,7 +123,7 @@ class NBT{
|
||||
}
|
||||
|
||||
private function parseList(&$node, $tag, $cnt){
|
||||
for($i = 0; $i < $cnt; ++$i){
|
||||
for($i = 0; $i < $cnt and !$this->feof(); ++$i){
|
||||
switch($tag){
|
||||
case self::TAG_BYTE:
|
||||
$value = $this->readTAG_BYTE();
|
||||
@ -163,7 +167,7 @@ class NBT{
|
||||
}
|
||||
|
||||
private function parseTree(&$node){
|
||||
while(($tag = ord($this->read(1))) !== self::TAG_END){
|
||||
while(($tag = ord($this->read(1))) !== self::TAG_END and !$this->feof()){
|
||||
$name = $this->readTAG_STRING();
|
||||
switch($tag){
|
||||
case self::TAG_BYTE:
|
||||
|
Loading…
x
Reference in New Issue
Block a user