<?php
$class = "ArrayObject";
// we break BC here
var_dump(unserialize('O:'.strlen($class).':"'.$class.'":0:{}'));
// we still allow segfault:
class MySplFileObject extends SplFileObject{}
$class = "MySplFileObject";
var_dump(unserialize('O:'.strlen($class).':"'.$class.'":0:{}'));
Fatal error: Uncaught UnexpectedValueException: Incomplete or ill-typed serialization data in /in/BDq6g:4
Stack trace:
#0 [internal function]: ArrayObject->__unserialize(Array)
#1 /in/BDq6g(4): unserialize('O:11:"ArrayObje...')
#2 {main}
thrown in /in/BDq6g on line 4
Process exited with code 255.
Output for 7.3.32 - 7.3.33
Warning: Erroneous data format for unserializing 'ArrayObject' in /in/BDq6g on line 4
bool(false)
Warning: Erroneous data format for unserializing 'MySplFileObject' in /in/BDq6g on line 8
bool(false)
Warning: Erroneous data format for unserializing 'ArrayObject' in /in/BDq6g on line 4
Notice: unserialize(): Error at offset 22 of 23 bytes in /in/BDq6g on line 4
bool(false)
Warning: Erroneous data format for unserializing 'MySplFileObject' in /in/BDq6g on line 8
Notice: unserialize(): Error at offset 26 of 27 bytes in /in/BDq6g on line 8
bool(false)
Output for 5.4.30 - 5.4.45, 5.5.14 - 5.5.36
object(ArrayObject)#1 (1) {
["storage":"ArrayObject":private]=>
array(0) {
}
}
Warning: Erroneous data format for unserializing 'MySplFileObject' in /in/BDq6g on line 8
Notice: unserialize(): Error at offset 26 of 27 bytes in /in/BDq6g on line 8
bool(false)
object(ArrayObject)#1 (0) {
}
Fatal error: Class 'SplFileObject' not found in /in/BDq6g on line 6
Process exited with code 255.
Output for 4.3.2 - 4.3.11, 4.4.0 - 4.4.9
object(__PHP_Incomplete_Class)(1) {
["__PHP_Incomplete_Class_Name"]=>
string(11) "arrayobject"
}
Fatal error: Class mysplfileobject: Cannot inherit from undefined class splfileobject in /in/BDq6g on line 6
Process exited with code 255.
Output for 4.3.0 - 4.3.1
object(__PHP_Incomplete_Class)(1) {
["__PHP_Incomplete_Class_Name"]=>
string(11) "arrayobject"
}
Fatal error: Class mysplfileobject: Cannot inherit from undefined class splfileobject in /in/BDq6g on line 6