ID: 50299 Updated by: fel...@php.net Reported By: shepik at yandex dot ru -Status: Open +Status: Verified Bug Type: Scripting Engine problem Operating System: * PHP Version: 5.3SVN-2009-11-25 (snap)
Previous Comments: ------------------------------------------------------------------------ [2009-11-27 08:40:15] shepik at yandex dot ru it seems that "rewind" and "valid" are called on $P variable and not on the contents of $P variable at the moment "foreach" was called. #3 0x08397fe1 in zend_call_function (fci=0xbfdeeaf4, fci_cache=0xbfdeeac4) at /home/shepik/php-5.3-200911260930/Zend/zend_execute_API.c:942 #4 0x083bef94 in zend_call_method (object_pp=0xbfdeeb60, obj_ce=0x8f20038, fn_proxy=0x8f20180, function_name=0x871959d "rewind", function_name_len=6, retval_ptr_ptr=0x0, param_count=0, arg1=0x0, arg2=0x0) at /home/shepik/php-5.3-200911260930/Zend/zend_interfaces.c:97 #5 0x083bf735 in zend_user_it_rewind (_iter=0x8f23754) at /home/shepik/php-5.3-200911260930/Zend/zend_interfaces.c:261 *(zval*)iter->it.data = {value = {lval = 1, dval = 5.6472996106671002e-268, str = {val = 0x1 <Address 0x1 out of bounds>, len = 141731200}, ht = 0x1, obj = {handle = 1, handlers = 0x872a580}}, refcount__gc = 3, type = 5 '\005', is_ref__gc = 1 '\001'} now callind "valid": #1 0x083bef20 in zend_call_method (object_pp=0xbfdeeb5c, obj_ce=0x8f20038, fn_proxy=0x8f20170, function_name=0x87194c5 "valid", function_name_len=5, retval_ptr_ptr=0xbfdeeb58, param_count=0, arg1=0x0, arg2=0x0) at /home/shepik/php-5.3-200911260930/Zend/zend_interfaces.c:88 #2 0x083bf1d9 in zend_user_it_valid (_iter=0x8f23754) at /home/shepik/php-5.3-200911260930/Zend/zend_interfaces.c:163 *(zval*)iter->it.data = {value = {lval = 0, dval = 8.4879831638610893e-314, str = {val = 0x0, len = 4}, ht = 0x0, obj = {handle = 0, handlers = 0x4}}, refcount__gc = 2, type = 0 '\0', is_ref__gc = 1 '\001'} (i don't know if this information is useful at all, but hope it is) ------------------------------------------------------------------------ [2009-11-26 11:05:29] shepik at yandex dot ru she...@samoval ~/php-5.3-200911260930 $ gdb sapi/cli/php GNU gdb 6.8 [..] This GDB was configured as "i686-pc-linux-gnu"... (gdb) run test_variant2.php Starting program: /home/shepik/php-5.3-200911260930/sapi/cli/php test_variant2.php rewind on Foo Program received signal SIGSEGV, Segmentation fault. 0x083a67d7 in zend_get_class_entry (zobject=0x8e536c0) at /home/shepik/php-5.3-200911260930/Zend/zend_API.c:230 230 if (Z_OBJ_HT_P(zobject)->get_class_entry) { (gdb) bt #0 0x083a67d7 in zend_get_class_entry (zobject=0x8e536c0) at /home/shepik/php-5.3-200911260930/Zend/zend_API.c:230 #1 0x083bef20 in zend_call_method (object_pp=0xbfc6b3cc, obj_ce=0x8e50038, fn_proxy=0x8e50170, function_name=0x87194c5 "valid", function_name_len=5, retval_ptr_ptr=0xbfc6b3c8, param_count=0, arg1=0x0, arg2=0x0) at /home/shepik/php-5.3-200911260930/Zend/zend_interfaces.c:88 #2 0x083bf1d9 in zend_user_it_valid (_iter=0x8e53754) at /home/shepik/php-5.3-200911260930/Zend/zend_interfaces.c:163 #3 0x08446999 in ZEND_FE_RESET_SPEC_CV_HANDLER (execute_data=0x8e7dba0) at /home/shepik/php-5.3-200911260930/Zend/zend_vm_execute.h:22653 #4 0x083d0b7e in execute (op_array=0x8e51a84) at /home/shepik/php-5.3-200911260930/Zend/zend_vm_execute.h:104 #5 0x083a605e in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /home/shepik/php-5.3-200911260930/Zend/zend.c:1194 #6 0x0833df90 in php_execute_script (primary_file=0xbfc6d8cc) at /home/shepik/php-5.3-200911260930/main/main.c:2231 #7 0x0846b874 in main (argc=2, argv=0xbfc6da24) at /home/shepik/php-5.3-200911260930/sapi/cli/php_cli.c:1190 ------------------------------------------------------------------------ [2009-11-26 10:18:32] ka...@php.net Thank you for this bug report. To properly diagnose the problem, we need a backtrace to see what is happening behind the scenes. To find out how to generate a backtrace, please read http://bugs.php.net/bugs-generating-backtrace.php for *NIX and http://bugs.php.net/bugs-generating-backtrace-win32.php for Win32 Once you have generated a backtrace, please submit it to this bug report and change the status back to "Open". Thank you for helping us make PHP better. ------------------------------------------------------------------------ [2009-11-25 21:56:09] shepik at yandex dot ru (and i don't know if i should select "SPL related" or "reproducible crash" category, so if i'm wrong with selecting "SPL", please correct me) ------------------------------------------------------------------------ [2009-11-25 21:17:57] shepik at yandex dot ru And if change code to $P = new lazyNew(function() use (&$P) { $v = new ArrayIterator(array(1,2,3,4,5)); $P = null; return $v; }); instead of fatal error, or "12345", or something else, i get segmentation fault. ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/50299 -- Edit this bug report at http://bugs.php.net/?id=50299&edit=1