: Bug #40794 :: ReflectionObject::getValue()
| Bug #40794 | ReflectionObject::getValue() | ||||
|---|---|---|---|---|---|
| Submitted: | 2007-03-13 16:59 UTC | Modified: | 2007-03-17 23:00 UTC | ||
| From: | igor at webta dot net | Assigned: | helly (profile) | ||
| Status: | Closed | Package: | Reproducible crash | ||
| PHP Version: | 5.2.1 | OS: | FreeBSD 6.0-RELEASE | ||
| Private report: | No | CVE-ID: | None | ||
[2007-03-13 16:59 UTC] igor at webta dot net
Description:
------------
The following example results in a segfault in PHP 5:
Reproduce code:
---------------
<?
$obj = new stdClass();
$obj->prop1 = '1';
$obj->prop2 = '2';
$reflect = new ReflectionObject($obj);
$array = array();
foreach($reflect->getProperties() as $prop)
{
$array[$prop->getName()] = $prop->getValue($obj);
}
print_r($array);
?>
Expected result:
----------------
Array
(
[prop1] => 1
[prop2] => 2
)
Actual result:
--------------
Segmentation fault (core dumped)
(gdb) backtrace
#0 0x0808a5fa in zim_reflection_property_getValue ()
#1 0x081501b6 in zend_do_fcall_common_helper_SPEC ()
#2 0x0814f915 in execute ()
#3 0x08137fcf in zend_execute_scripts ()
#4 0x08101f41 in php_execute_script ()
#5 0x081b0934 in main ()
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2007-03-14 17:04 UTC] igor at webta dot net
Sorry, I cannot test latest snapshot on FreeBSD system, I try it on WinXP with following results: Test 1: <? $obj = new stdClass(); $obj->prop1 = '1'; $obj->prop2 = '2'; $reflect = new ReflectionObject($obj); $array = array(); foreach($reflect->getProperties() as $prop) { $array[$prop->getName()] = $prop->getValue($obj); } print_r($array); ?> Expected result: Array ( [prop1] => 1 [prop2] => 2 ) Actual result: Array ( [prop1] => 2 [prop2] => ) Test 2: <? $obj = new stdClass(); $obj->prop1 = '1'; $obj->prop2 = '2'; $obj->prop3 = '3'; $reflect = new ReflectionObject($obj); $array = array(); foreach($reflect->getProperties() as $prop) { $array[$prop->getName()] = $prop->getValue($obj); } print_r($array); ?> Expected result: Array ( [prop1] => 1 [prop2] => 2 [prop3] => 3 ) Actual result: Fatal error: Cannot access property started with '\0' in C:\php\test.php on line 12 Still does not work property.[2007-03-17 23:00 UTC] tony2001@php.net