From: daan at parse dot nl
Operating system: Slackware 10.2
PHP version: 5.2.0
PHP Bug Type: Reproducible crash
Bug description: Calling debug_backtrace() in the __toString() function
produces a crash
Description:
------------
Calling debug_backtrace() in an __toString() function produces a crash,
but only when the __toString() function is triggered by a native php
string function.
Reproduce code:
---------------
<?php
class test
{
public function __toString()
{
debug_backtrace();
return 'lowercase';
}
}
$test = new test();
echo strtoupper($test);
?>
Expected result:
----------------
An echoed "LOWERCASE"
Actual result:
--------------
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 28346)]
zend_objects_store_del_ref_by_handle (handle=1089634572)
at /usr/src/php-5.2.0/Zend/zend_objects_API.c:187
187 if (EG(objects_store).object_buckets[handle].valid) {
(gdb) bt
#0 zend_objects_store_del_ref_by_handle (handle=1089634572)
at /usr/src/php-5.2.0/Zend/zend_objects_API.c:187
#1 0x40656015 in zend_objects_store_del_ref (zobject=0x40f27e10)
at /usr/src/php-5.2.0/Zend/zend_objects_API.c:165
#2 0x40636a52 in _convert_to_string (op=0x40f27e10)
at /usr/src/php-5.2.0/Zend/zend_variables.h:35
#3 0x405c8b79 in zif_strtoupper (ht=1, return_value=0x40f27df8,
return_value_ptr=0x0, this_ptr=0x0, return_value_used=0)
at /usr/src/php-5.2.0/ext/standard/string.c:1132
#4 0x40658d64 in zend_do_fcall_common_helper_SPEC
(execute_data=0xbfffb260)
at /usr/src/php-5.2.0/Zend/zend_vm_execute.h:200
#5 0x40658499 in execute (op_array=0x40f24184)
at /usr/src/php-5.2.0/Zend/zend_vm_execute.h:92
#6 0x4063ec0c in zend_execute_scripts (type=8, retval=0x0, file_count=3)
at /usr/src/php-5.2.0/Zend/zend.c:1097
#7 0x40604e3a in php_execute_script (primary_file=0xbfffd5c0)
at /usr/src/php-5.2.0/main/main.c:1758
#8 0x406bf8d2 in apache_php_module_main (r=0x80cb5bc,
display_source_mode=0)
at /usr/src/php-5.2.0/sapi/apache/sapi_apache.c:53
#9 0x406c02e6 in send_php (r=0x80cb5bc, display_source_mode=0,
filename=0x0)
at /usr/src/php-5.2.0/sapi/apache/mod_php5.c:660
#10 0x406c04f6 in send_parsed_php (r=0x80cb5bc)
at /usr/src/php-5.2.0/sapi/apache/mod_php5.c:675
#11 0x08053ff7 in ap_invoke_handler ()
#12 0x08069039 in process_request_internal ()
#13 0x08069098 in ap_process_request ()
#14 0x080600ba in child_main ()
#15 0x08060262 in make_child ()
#16 0x080603c8 in startup_children ()
#17 0x08060a88 in standalone_main ()
#18 0x080612a6 in main ()
--
Edit bug report at http://bugs.php.net/?id=39445&edit=1
--
Try a CVS snapshot (PHP 4.4):
http://bugs.php.net/fix.php?id=39445&r=trysnapshot44
Try a CVS snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=39445&r=trysnapshot52
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=39445&r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=39445&r=fixedcvs
Fixed in release:
http://bugs.php.net/fix.php?id=39445&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=39445&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=39445&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=39445&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=39445&r=support
Expected behavior: http://bugs.php.net/fix.php?id=39445&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=39445&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=39445&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=39445&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=39445&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=39445&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=39445&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=39445&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=39445&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=39445&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=39445&r=mysqlcfg