summaryrefslogtreecommitdiff
path: root/Zend/zend_inheritance.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2016-04-19 01:37:24 +0300
committerDmitry Stogov <dmitry@zend.com>2016-04-19 01:37:24 +0300
commite46be0cd19ccf24f0d6417cf9d784847e8542e49 (patch)
tree5f628e474d77e6a6d75da2045d257872d526275e /Zend/zend_inheritance.c
parent73958ca62d3483c46e10a20f5690fe8c8103baad (diff)
parentffc697ac27377df3f295c7dc7281b578759645cb (diff)
downloadphp-git-e46be0cd19ccf24f0d6417cf9d784847e8542e49.tar.gz
Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6: Prevent usage in GC after free.
Diffstat (limited to 'Zend/zend_inheritance.c')
-rw-r--r--Zend/zend_inheritance.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c
index 9042b2f0a2..1575293b0a 100644
--- a/Zend/zend_inheritance.c
+++ b/Zend/zend_inheritance.c
@@ -657,7 +657,8 @@ static void do_inherit_property(zend_property_info *parent_info, zend_string *ke
int parent_num = OBJ_PROP_TO_NUM(parent_info->offset);
int child_num = OBJ_PROP_TO_NUM(child_info->offset);
- zval_ptr_dtor(&(ce->default_properties_table[parent_num]));
+ /* Don't keep default properties in GC (thry may be freed by opcache) */
+ zval_ptr_dtor_nogc(&(ce->default_properties_table[parent_num]));
ce->default_properties_table[parent_num] = ce->default_properties_table[child_num];
ZVAL_UNDEF(&ce->default_properties_table[child_num]);
child_info->offset = parent_info->offset;