mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Always invoke zpp in ReflectionProperty::getValue/isInitialized
Make sure we still perform a zpp check for the static case, and also always enforce that the parameter is ?object. Otherwise we violate the specified signature.
This commit is contained in:
parent
87f127d8fa
commit
42fbc76d9c
5 changed files with 45 additions and 17 deletions
|
@ -5467,9 +5467,13 @@ ZEND_METHOD(reflection_property, getValue)
|
|||
{
|
||||
reflection_object *intern;
|
||||
property_reference *ref;
|
||||
zval *object, *name;
|
||||
zval *object = NULL, *name;
|
||||
zval *member_p = NULL;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|o!", &object) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
GET_REFLECTION_OBJECT_PTR(ref);
|
||||
|
||||
if (!(prop_get_flags(ref) & ZEND_ACC_PUBLIC) && intern->ignore_visibility == 0) {
|
||||
|
@ -5487,7 +5491,8 @@ ZEND_METHOD(reflection_property, getValue)
|
|||
} else {
|
||||
zval rv;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "o", &object) == FAILURE) {
|
||||
if (!object) {
|
||||
zend_type_error("No object provided for getValue() on instance property");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
|
@ -5553,9 +5558,13 @@ ZEND_METHOD(reflection_property, isInitialized)
|
|||
{
|
||||
reflection_object *intern;
|
||||
property_reference *ref;
|
||||
zval *object, *name;
|
||||
zval *object = NULL, *name;
|
||||
zval *member_p = NULL;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|o!", &object) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
GET_REFLECTION_OBJECT_PTR(ref);
|
||||
|
||||
if (!(prop_get_flags(ref) & ZEND_ACC_PUBLIC) && intern->ignore_visibility == 0) {
|
||||
|
@ -5575,7 +5584,8 @@ ZEND_METHOD(reflection_property, isInitialized)
|
|||
zend_class_entry *old_scope;
|
||||
int retval;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "o", &object) == FAILURE) {
|
||||
if (!object) {
|
||||
zend_type_error("No object provided for isInitialized() on instance property");
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue