summaryrefslogtreecommitdiff
path: root/Zend/zend_object_handlers.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-05-06 21:33:49 +0300
committerDmitry Stogov <dmitry@zend.com>2015-05-06 21:33:49 +0300
commit2a9f9860d724296e4853515c04dea3dcb729654d (patch)
treee591818721b9711caea653b8ebd33308772b7345 /Zend/zend_object_handlers.c
parentab97606b8a9501599cf027b13b72fc0c92e3a16e (diff)
downloadphp-git-2a9f9860d724296e4853515c04dea3dcb729654d.tar.gz
Fixed bug #69534 (Cycle leaks through declared properties on internal classes)
Diffstat (limited to 'Zend/zend_object_handlers.c')
-rw-r--r--Zend/zend_object_handlers.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index b85dd840e8..363ea139d6 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -127,9 +127,15 @@ ZEND_API HashTable *zend_std_get_gc(zval *object, zval **table, int *n) /* {{{ *
} else {
zend_object *zobj = Z_OBJ_P(object);
- *table = zobj->properties_table;
- *n = zobj->ce->default_properties_count;
- return zobj->properties;
+ if (zobj->properties) {
+ *table = NULL;
+ *n = 0;
+ return zobj->properties;
+ } else {
+ *table = zobj->properties_table;
+ *n = zobj->ce->default_properties_count;
+ return NULL;
+ }
}
}
/* }}} */