ID: 46088 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Assigned +Status: Closed Bug Type: SPL related PHP Version: 5.3CVS-2008-09-15 (CVS) Assigned To: colder New Comment:
This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Fixed in 5.2, 5.3 and HEAD. Previous Comments: ------------------------------------------------------------------------ [2008-09-15 22:52:36] [EMAIL PROTECTED] Marcus, can I commit it or have you a better fix? :) ------------------------------------------------------------------------ [2008-09-15 22:52:12] [EMAIL PROTECTED] Description: ------------ A simple detail: Index: ext/spl/spl_iterators.c =================================================================== RCS file: /repository/php-src/ext/spl/spl_iterators.c,v retrieving revision 1.73.2.30.2.28.2.14 diff -u -p -r1.73.2.30.2.28.2.14 spl_iterators.c --- ext/spl/spl_iterators.c 9 Sep 2008 19:44:15 -0000 1.73.2.30.2.28.2.14 +++ ext/spl/spl_iterators.c 15 Sep 2008 22:46:02 -0000 @@ -1690,6 +1690,10 @@ SPL_METHOD(RegexIterator, accept) int subject_len, use_copy, count, result_len; zval subject_copy, zcount, *replacement; + if (intern->current.data == NULL) { + RETURN_FALSE; + } + if (intern->u.regex.flags & REGIT_USE_KEY) { if (intern->current.key_type == HASH_KEY_IS_LONG) { subject_len = slprintf(tmp, sizeof(tmp), "%ld", intern->current.int_key); Reproduce code: --------------- <?php $x = new RegexIterator(new ArrayIterator(range(1, 10)), '/\d/'); var_dump($x->accept()); ?> Using the flag RegexIterator::USE_KEY too. Actual result: -------------- Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1211655776 (LWP 768)] zend_make_printable_zval (expr=0x0, expr_copy=0xbf8b9360, use_copy=0xbf8b9374) at /home/felipe/dev/php5/Zend/zend.c:208 208 if (Z_TYPE_P(expr)==IS_STRING) { (gdb) bt #0 zend_make_printable_zval (expr=0x0, expr_copy=0xbf8b9360, use_copy=0xbf8b9374) at /home/felipe/dev/php5/Zend/zend.c:208 #1 0x081941d0 in zim_spl_RegexIterator_accept (ht=0, return_value=0x8786d34, return_value_ptr=0x0, this_ptr=0x8785de8, return_value_used=1, tsrm_ls=0x8642050) at /home/felipe/dev/php5/ext/spl/spl_iterators.c:1704 #2 0x0834e7f0 in zend_do_fcall_common_helper_SPEC (execute_data=0x87b82d8, tsrm_ls=0x8642050) at /home/felipe/dev/php5/Zend/zend_vm_execute.h:315 #3 0x0833c913 in execute (op_array=0x8786238, tsrm_ls=0x8642050) at /home/felipe/dev/php5/Zend/zend_vm_execute.h:104 #4 0x08316d8f in zend_execute_scripts (type=8, tsrm_ls=0x8642050, retval=0x0, file_count=3) at /home/felipe/dev/php5/Zend/zend.c:1197 #5 0x082bdd0d in php_execute_script (primary_file=0xbf8bb848, tsrm_ls=0x8642050) at /home/felipe/dev/php5/main/main.c:2075 #6 0x083aea45 in main (argc=2, argv=0xbf8bb9a4) at /home/felipe/dev/php5/sapi/cli/php_cli.c:1130 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46088&edit=1