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

Reply via email to