Bug #62694 [PATCH]: Obtaining the value of inexistent dynamic properties should not be allowed
| From: | cmb@php.net | Date: | Wed, 05 Sep 2018 14:21:34 +0000 |
| Subject: | Bug #62694 [PATCH]: Obtaining the value of inexistent dynamic properties should not be allowed | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-216892@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=62694&edit=1
ID: 62694
Patch added by: cmb@php.net
Reported by: cataphract@php.net
Summary: Obtaining the value of inexistent dynamic properties
should not be allowed
Status: Open
Type: Bug
Package: Reflection related
Operating System: Irrelevant
PHP Version: *
Block user comment: N
Private report: N
New Comment:
The following patch has been added/updated:
Patch Name: undef-dynamic-throw
Revision: 1536157293
URL: https://bugs.php.net/patch-display.php?bug=62694&patch=undef-dynamic-throw&revision=1536157293
Previous Comments:
------------------------------------------------------------------------
[2014-07-15 11:31:51] yohgaki@php.net
Not fixed in all versions.
http://3v4l.org/PHAvK
------------------------------------------------------------------------
[2012-07-30 11:35:20] cataphract@php.net
Description:
------------
The reflection extension does not allow obtaining ReflectionProperty objects for non existent
properties, much less fetch their non existent value. However, this can be bypassed by creating a
dynamic ReflectionProperty in another object.
Test script:
---------------
<?php
class A {}
$a = new A;
$a->foo = "dynamic property";
$ro = new ReflectionObject($a);
$prop = $ro->getProperty('foo');
try {
var_dump($prop->getValue($a));
var_dump($prop->getValue(new A));
} catch (ReflectionException $ex) {
echo "Caught!\n";
try {
var_dump($prop->getValue(new A));
} catch (ReflectionException $ex) {
var_dump($ex->getMessage());
}
}
Expected result:
----------------
string(16) "dynamic property"
Caught!
string(49) "Dynamic property does not exist in given instance"
Actual result:
--------------
string(16) "dynamic property"
NULL
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=62694&edit=1