Bug #54384 [Opn]: FilterIterator crashes when constructor not called
| From: | lbarnaud@php.net | Date: | Fri, 25 Mar 2011 21:32:14 +0000 |
| Subject: | Bug #54384 [Opn]: FilterIterator crashes when constructor not called | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-159785@lists.php.net to get a copy of this message | ||
Edit report at http://bugs.php.net/bug.php?id=54384&edit=1
ID: 54384
Updated by: lbarnaud@php.net
Reported by: lbarnaud@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] lbarnaud@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