Edit report at http://bugs.php.net/bug.php?id=54384&edit=1
ID: 54384 Updated by: lbarn...@php.net Reported by: lbarn...@php.net Summary: FilterIterator crashes when constructor not called Status: Open Type: Bug Package: SPL related PHP Version: trunk-SVN-2011-03-25 (SVN) Block user comment: N Private report: N New Comment: I wondered if other classes are be affected by this, and after some tests I found that the following classes are affected: IteratorIterator FilterIterator RecursiveFilterIterator ParentIterator LimitIterator CachingIterator RecursiveCachingIterator NoRewindIterator InfiniteIterator RegexIterator RecursiveRegexIterator GlobIterator SplFileObject SplTempFileObject tests: <?php class IteratorIteratorTest extends IteratorIterator { function __construct(){} } $o = new IteratorIteratorTest; $o->rewind() class FilterIteratorTest extends FilterIterator { function __construct(){} function accept(){} } $o = new FilterIteratorTest; $o->rewind() class RecursiveFilterIteratorTest extends RecursiveFilterIterator { function __construct(){} function accept(){} } $o = new RecursiveFilterIteratorTest; $o->hasChildren() class ParentIteratorTest extends ParentIterator { function __construct(){} } $o = new ParentIteratorTest; $o->accept() class LimitIteratorTest extends LimitIterator { function __construct(){} } $o = new LimitIteratorTest; $o->rewind() class CachingIteratorTest extends CachingIterator { function __construct(){} } $o = new CachingIteratorTest; $o->rewind() class RecursiveCachingIteratorTest extends RecursiveCachingIterator { function __construct(){} } $o = new RecursiveCachingIteratorTest; $o->rewind() class NoRewindIteratorTest extends NoRewindIterator { function __construct(){} } $o = new NoRewindIteratorTest; $o->valid() class InfiniteIteratorTest extends InfiniteIterator { function __construct(){} } $o = new InfiniteIteratorTest; $o->next() class RegexIteratorTest extends RegexIterator { function __construct(){} } $o = new RegexIteratorTest; $o->rewind() class RecursiveRegexIteratorTest extends RecursiveRegexIterator { function __construct(){} } $o = new RecursiveRegexIteratorTest; $o->hasChildren() class GlobIteratorTest extends GlobIterator { function __construct(){} } $o = new GlobIteratorTest; $o->count() class SplFileObjectTest extends SplFileObject { function __construct(){} } $o = new SplFileObjectTest; $o->rewind() class SplTempFileObjectTest extends SplTempFileObject { function __construct(){} } $o = new SplTempFileObjectTest; $o->rewind() Previous Comments: ------------------------------------------------------------------------ [2011-03-25 21:34:56] lbarn...@php.net Description: ------------ FilterIterator instances crash when the constructor has not been called (accidentally). Test script: --------------- <?php class Test extends FilterIterator { function __construct() { } function accept() { } } $t = new Test; foreach($t as $e); ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=54384&edit=1