summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2019-01-24 13:08:00 +0300
committerDmitry Stogov <dmitry@zend.com>2019-01-24 13:08:00 +0300
commitfd41b99d58b5e1b2e7b7323b8e0744502c0f42bd (patch)
tree9c3e0e39c4bc689cf53f6094d7eb9153dac1f709 /Zend/zend_API.c
parent1d984cc707fed6f23224a5f72c0e8e5a0cc9fc24 (diff)
parentaa9a8dbda3ffc397aa177173650eaeaada778eda (diff)
downloadphp-git-fd41b99d58b5e1b2e7b7323b8e0744502c0f42bd.tar.gz
Merge branch 'PHP-7.3'
* PHP-7.3: Fixed bug #77494 (Disabling class causes segfault on member access)
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 234422ef65..a6aa4e5837 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -2773,6 +2773,17 @@ static zend_object *display_disabled_class(zend_class_entry *class_type) /* {{{
zend_object *intern;
intern = zend_objects_new(class_type);
+
+ /* Initialize default properties */
+ if (EXPECTED(class_type->default_properties_count != 0)) {
+ zval *p = intern->properties_table;
+ zval *end = p + class_type->default_properties_count;
+ do {
+ ZVAL_UNDEF(p);
+ p++;
+ } while (p != end);
+ }
+
zend_error(E_WARNING, "%s() has been disabled for security reasons", ZSTR_VAL(class_type->name));
return intern;
}