From 3684d411721c3b5dc85be74c5317e4d6311ad021 Mon Sep 17 00:00:00 2001 From: Joe Watkins Date: Sat, 14 May 2016 06:28:11 +0100 Subject: fix #72209 (ReflectionProperty::getValue() doesn't fail if object doesn't match type) --- ext/reflection/php_reflection.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'ext/reflection/php_reflection.c') diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 38cfec6aa9..13003cae84 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -5648,6 +5648,11 @@ ZEND_METHOD(reflection_property, getValue) return; } + if (!instanceof_function(Z_OBJCE_P(object), ref->ce)) { + _DO_THROW("Given object is not an instance of the class this property was declared in"); + /* Returns from this function */ + } + 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, 0, &rv); if (member_p != &rv) { -- cgit v1.2.1