ID: 27997 Updated by: [EMAIL PROTECTED] Reported By: adam at trachtenberg dot com -Status: Open +Status: Closed Bug Type: Reproducible crash Operating System: * PHP Version: 5CVS-2004-04-14 (dev) Assigned To: helly 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. Previous Comments: ------------------------------------------------------------------------ [2004-04-14 17:11:25] [EMAIL PROTECTED] Here's a bt. Don't know what's up with xmlLastError: #0 0x00173bf8 in xmlLastError () (gdb) bt #0 0x00173bf8 in xmlLastError () #1 0x00173be0 in xmlLastError () #2 0x0030e260 in zend_make_printable_zval (expr=0x30e260, expr_copy=0xd081d8, use_copy=0x5) at / usr/local/cvs/php-src/Zend/zend.c:229 #3 0x0034593c in zend_add_var_handler (execute_data=0xbfffec10, opline=0xd06a44, op_array=0xd05d08) at /usr/local/cvs/php-src/Zend/ zend_execute.c:2401 #4 0x00341314 in execute (op_array=0xd05d08) at /usr/ local/cvs/php-src/Zend/zend_execute.c:1391 #5 0x003104dc in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/local/cvs/php-src/ Zend/zend.c:1058 #6 0x002aecb0 in php_execute_script (primary_file=0xbffff680) at /usr/local/cvs/php-src/ main/main.c:1630 #7 0x003540bc in main (argc=3, argv=0xbffffbec) at / usr/local/cvs/php-src/sapi/cli/php_cli.c:943 ------------------------------------------------------------------------ [2004-04-14 16:28:02] adam at trachtenberg dot com Description: ------------ SPL crashes PHP when the developer misuses getInnerIterator(). This test case triggers the crash, but it probably not the smallest such test case. Sorry. Reproduce code: --------------- class CrashIterator extends FilterIterator implements RecursiveIterator { function accept() { return true; } function hasChildren() { return $this->getInnerIterator()->hasChildren(); } function getChildren() { return new RecursiveDirectoryIterator($this->getInnerIterator()->getPath()); } } $dir = new RecursiveIteratorIterator(new CrashIterator( new RecursiveDirectoryIterator($argv[1])), 1); foreach ($dir as $file) { print "$file\n"; } Expected result: ---------------- No crash. Actual result: -------------- Core dump. Let me know if you want a bt. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=27997&edit=1
