mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-13 13:25:16 +00:00
MemoryManager: scrub string keys for dumping
fixes crashes such as https://crash.pmmp.io/view/5986490 this also ensures that the order of elements is maintained when decoded by another software.
This commit is contained in:
parent
d60dba2de0
commit
bd4c2b5245
@ -508,8 +508,13 @@ class MemoryManager{
|
|||||||
return "(error) ARRAY RECURSION LIMIT REACHED";
|
return "(error) ARRAY RECURSION LIMIT REACHED";
|
||||||
}
|
}
|
||||||
$data = [];
|
$data = [];
|
||||||
|
$numeric = 0;
|
||||||
foreach($from as $key => $value){
|
foreach($from as $key => $value){
|
||||||
$data[$key] = self::continueDump($value, $objects, $refCounts, $recursion + 1, $maxNesting, $maxStringSize);
|
$data[$numeric] = [
|
||||||
|
"k" => self::continueDump($key, $objects, $refCounts, $recursion + 1, $maxNesting, $maxStringSize),
|
||||||
|
"v" => self::continueDump($value, $objects, $refCounts, $recursion + 1, $maxNesting, $maxStringSize),
|
||||||
|
];
|
||||||
|
$numeric++;
|
||||||
}
|
}
|
||||||
}elseif(is_string($from)){
|
}elseif(is_string($from)){
|
||||||
$data = "(string) len(" . strlen($from) . ") " . substr(Utils::printable($from), 0, $maxStringSize);
|
$data = "(string) len(" . strlen($from) . ") " . substr(Utils::printable($from), 0, $maxStringSize);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user