mirror of
https://github.com/php/php-src.git
synced 2026-04-03 14:12:38 +02:00
Fixed bug #42818 ($foo = clone(array()); leaks memory)
This commit is contained in:
9
Zend/tests/bug42818.phpt
Normal file
9
Zend/tests/bug42818.phpt
Normal file
@@ -0,0 +1,9 @@
|
||||
--TEST--
|
||||
Bug #42818 ($foo = clone(array()); leaks memory)
|
||||
--FILE--
|
||||
<?php
|
||||
$foo = clone(array());
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: __clone method called on non-object in %sbug42818.php on line 2
|
||||
|
||||
@@ -2582,7 +2582,7 @@ ZEND_VM_HANDLER(110, ZEND_CLONE, CONST|TMP|VAR|UNUSED|CV, ANY)
|
||||
zend_error(E_WARNING, "__clone method called on non-object");
|
||||
EX_T(opline->result.u.var).var.ptr = EG(error_zval_ptr);
|
||||
EX_T(opline->result.u.var).var.ptr->refcount++;
|
||||
FREE_OP1_IF_VAR();
|
||||
FREE_OP1();
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
|
||||
|
||||
@@ -4669,7 +4669,7 @@ static int ZEND_CLONE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
zend_error(E_WARNING, "__clone method called on non-object");
|
||||
EX_T(opline->result.u.var).var.ptr = EG(error_zval_ptr);
|
||||
EX_T(opline->result.u.var).var.ptr->refcount++;
|
||||
|
||||
zval_dtor(free_op1.var);
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user