ID:               24710
 User updated by:  swalk at prp dot physik dot tu-darmstadt dot de
 Reported By:      swalk at prp dot physik dot tu-darmstadt dot de
 Status:           Verified
 Bug Type:         Reproducible crash
 Operating System: Any
 PHP Version:      4.3.2
 New Comment:

Okay, php5(b2) does it right, you get a
Notice: Undefined property:  stdClass::$0 in Command line code on line
1
when doing that.

It also only segfaults when you put a literal int or float into the
braces. If you put a variable containing an int or float in there it
works as expected...


Previous Comments:
------------------------------------------------------------------------

[2003-07-18 18:05:17] swalk at prp dot physik dot tu-darmstadt dot de

hmm. my fault, it doesn't segfault in 5.0.0b2 - i must have been in the
wrong directory when i tried to check.

------------------------------------------------------------------------

[2003-07-18 18:01:26] [EMAIL PROTECTED]

ups, I made a typo in the 2. testscript,
it should be "var $foo;" instead of "var foo;"
it also segfaults...


------------------------------------------------------------------------

[2003-07-18 17:57:46] [EMAIL PROTECTED]

I could reproduce this behavior with PHP 4.3.0, 4.3.1, 4.3.2, 4.2.3.
With 5.0.0b1 it doesn't segfault but shows no output neither a warning
or fatal.

With this code instead it works like expected:
<?php
class test
{
        var foo;
}

$obj = &new test();
$obj->foo = "bar";
print $obj->{0};
?>

Outputs:
PHP Parse error:  parse error, expecting `T_VARIABLE' in
/home/meebey/phpbug.php on line 4


------------------------------------------------------------------------

[2003-07-18 17:30:18] swalk at prp dot physik dot tu-darmstadt dot de

sorry, mozillas cache was messing up.

------------------------------------------------------------------------

[2003-07-18 17:28:12] swalk at prp dot physik dot tu-darmstadt dot de

Description:
------------
This little script creates a segfault on every version of php i came
across (4.3.2, 4.3.3rc1, 5.0.0b2). When you replace 0 with "0", it
works.


Reproduce code:
---------------
<?php
$obj->foo = "bar"; // or anything else that creates an object
print $obj->{0};
?>


Expected result:
----------------
Notice: undefined property: 0... or something alike

Actual result:
--------------
(gdb) bt
#0  0x08146cf8 in zend_hash_find (ht=0x8211f64, arKey=0x0,
nKeyLength=4, pData=0xbfffca9c)
    at /home/et/sources/php-4.3.2/Zend/zend_hash.c:875
#1  0x08151e70 in zend_fetch_property_address_inner (ht=0x8211f64,
op2=0x8219910, Ts=0xbfffcb40, type=0)
    at /home/et/sources/php-4.3.2/Zend/zend_execute.c:199
#2  0x0814c6b9 in zend_fetch_property_address (result=0x82198f0,
op1=0x8215244, op2=0x8219910, Ts=0xbfffcb40, type=0)
    at /home/et/sources/php-4.3.2/Zend/zend_execute.c:930
#3  0x08150e97 in execute (op_array=0x82156a4) at
/home/et/sources/php-4.3.2/Zend/zend_execute.c:1328
#4  0x081426f1 in zend_execute_scripts (type=8, retval=0x0,
file_count=3) at /home/et/sources/php-4.3.2/Zend/zend.c:869
#5  0x0811d2fb in php_execute_script (primary_file=0xbffff070) at
/home/et/sources/php-4.3.2/main/main.c:1671
#6  0x08153932 in main (argc=4, argv=0xbffff0f4) at
/home/et/sources/php-4.3.2/sapi/cli/php_cli.c:806
#7  0x420158f7 in __libc_start_main () from /lib/i686/libc.so.6



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=24710&edit=1

Reply via email to