Merge branch 'PHP-7.4'

This commit is contained in:
Nikita Popov 2019-08-15 10:40:45 +02:00
commit deceafbe63
2 changed files with 26 additions and 5 deletions

View File

@ -1885,11 +1885,6 @@ SPL_METHOD(Array, __unserialize)
if (flags & SPL_ARRAY_IS_SELF) {
zval_ptr_dtor(&intern->array);
ZVAL_UNDEF(&intern->array);
} else if (Z_TYPE_P(storage_zv) == IS_ARRAY) {
zval_ptr_dtor(&intern->array);
ZVAL_COPY_VALUE(&intern->array, storage_zv);
ZVAL_NULL(storage_zv);
SEPARATE_ARRAY(&intern->array);
} else {
spl_array_set_array(ZEND_THIS, intern, storage_zv, 0L, 1);
}

View File

@ -0,0 +1,26 @@
--TEST--
Bug #78409: Segfault when creating instance of ArrayIterator without constructor
--FILE--
<?php
$a = new ArrayObject;
$u = [
0,
[],
[],
];
$a->__unserialize($u);
var_dump($u);
?>
--EXPECT--
array(3) {
[0]=>
int(0)
[1]=>
array(0) {
}
[2]=>
array(0) {
}
}