diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-05-06 21:33:49 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-05-06 21:33:49 +0300 |
commit | 2a9f9860d724296e4853515c04dea3dcb729654d (patch) | |
tree | e591818721b9711caea653b8ebd33308772b7345 /Zend/zend_object_handlers.c | |
parent | ab97606b8a9501599cf027b13b72fc0c92e3a16e (diff) | |
download | php-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.c | 12 |
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; + } } } /* }}} */ |