Merge branch 'PHP-7.0' into PHP-7.1

This commit is contained in:
Nikita Popov 2017-03-10 18:20:49 +01:00
commit 280e8dafe4
3 changed files with 22 additions and 0 deletions

2
NEWS
View File

@ -6,6 +6,8 @@ PHP NEWS
. Fixed bug #74149 (static embed SAPI linkage error). (krakjoe)
. Fixed bug #73370 (falsely exits with "Out of Memory" when using
USE_ZEND_ALLOC=0). (Nikita)
. Fixed bug #73960 (Leak with instance method calling static method with
referenced return). (Nikita)
- Date:
. Fixed bug #72096 (Swatch time value incorrect for dates before 1970). (mcq8)

16
Zend/tests/bug73960.phpt Normal file
View File

@ -0,0 +1,16 @@
--TEST--
Bug #73960: Leak with instance method calling static method with referenced return
--FILE--
<?php
$value = 'one';
$array = array($value);
$array = $ref =& $array;
var_dump($array);
?>
--EXPECT--
array(1) {
[0]=>
string(3) "one"
}

View File

@ -81,6 +81,10 @@ static zend_always_inline zval* zend_assign_to_variable(zval *variable_ptr, zval
return variable_ptr;
}
if (ZEND_CONST_COND(value_type & (IS_VAR|IS_CV), 1) && variable_ptr == value) {
if (value_type == IS_VAR && ref) {
ZEND_ASSERT(GC_REFCOUNT(ref) > 1);
--GC_REFCOUNT(ref);
}
return variable_ptr;
}
garbage = Z_COUNTED_P(variable_ptr);