Skip to content

Commit 268b5fe

Browse files
committed
Fixed bug #78182
1 parent b8cba88 commit 268b5fe

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

NEWS

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ PHP NEWS
66
. Fixed bug #78151 (Segfault caused by indirect expressions in PHP 7.4a1).
77
(Nikita)
88
. Fixed bug #78154 (SEND_VAR_NO_REF does not always send reference). (Nikita)
9+
. Fixed bug #78182 (Segmentation fault during by-reference property
10+
assignment). (Nikita)
911

1012
- Date:
1113
. Fixed #69044 (discrepency between time and microtime). (krakjoe)

Zend/tests/bug78182.phpt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
--TEST--
2+
Bug #78182: Segmentation fault during by-reference property assignment
3+
--FILE--
4+
<?php
5+
$varName = 'var';
6+
$propName = 'prop';
7+
$$varName->$propName =& $$varName;
8+
var_dump($var);
9+
?>
10+
--EXPECTF--
11+
Warning: Creating default object from empty value in %s on line %d
12+
object(stdClass)#1 (1) {
13+
["prop"]=>
14+
*RECURSION*
15+
}

Zend/zend_execute.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2826,6 +2826,7 @@ static zend_always_inline void zend_assign_to_property_reference(zval *container
28262826
if (prop_op_type == IS_CONST) {
28272827
prop_info = (zend_property_info *) CACHED_PTR_EX(cache_addr + 2);
28282828
} else {
2829+
ZVAL_DEREF(container);
28292830
prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(container), variable_ptr);
28302831
}
28312832

0 commit comments

Comments
 (0)