diff options
author | Dmitry Stogov <dmitry@zend.com> | 2015-01-22 11:50:42 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2015-01-22 11:50:42 +0300 |
commit | 3e31838d19750d287431d22e9290856ec962fd6a (patch) | |
tree | 47f531e9bc442106f5eee978104fa14f1a5d19d2 /ext/reflection/php_reflection.c | |
parent | 201f660ae11488eeacd16ee7adbe79fc8a28e27d (diff) | |
download | php-git-3e31838d19750d287431d22e9290856ec962fd6a.tar.gz |
zend_read_property() has to provide a holder for return value.
Previously it was possible that zend_read_property() returned pointer to zval allocated on stack.
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r-- | ext/reflection/php_reflection.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 3f5c7a9062..c95ec0d81e 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -5013,13 +5013,14 @@ ZEND_METHOD(reflection_property, getValue) } else { const char *class_name, *prop_name; size_t prop_name_len; + zval rv; if (zend_parse_parameters(ZEND_NUM_ARGS(), "o", &object) == FAILURE) { return; } zend_unmangle_property_name_ex(ref->prop.name, &class_name, &prop_name, &prop_name_len); - member_p = zend_read_property(ref->ce, object, prop_name, prop_name_len, 1); + member_p = zend_read_property(ref->ce, object, prop_name, prop_name_len, 1, &rv); ZVAL_DUP(return_value, member_p); } } |