From: Arnaud Le Blanc Date: Tue, 9 Sep 2008 19:43:52 +0000 (+0000) Subject: Fixed bug #46031 (Segfault in AppendIterator::next) X-Git-Tag: BEFORE_HEAD_NS_CHANGE~453 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cee365dbf009df4b4c702d79a8d20ff7f30d9e86;p=php Fixed bug #46031 (Segfault in AppendIterator::next) --- diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index ce27ee7d7b..e6bfea8450 100755 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -1499,6 +1499,9 @@ static inline void spl_dual_it_rewind(spl_dual_it_object *intern TSRMLS_DC) static inline int spl_dual_it_valid(spl_dual_it_object *intern TSRMLS_DC) { + if (!intern->inner.iterator) { + return FAILURE; + } /* FAILURE / SUCCESS */ return intern->inner.iterator->funcs->valid(intern->inner.iterator TSRMLS_CC); } diff --git a/ext/spl/tests/bug46031.phpt b/ext/spl/tests/bug46031.phpt new file mode 100644 index 0000000000..9261ff0fe6 --- /dev/null +++ b/ext/spl/tests/bug46031.phpt @@ -0,0 +1,9 @@ +--TEST-- +Bug #46031 (Segfault in AppendIterator::next) +--FILE-- +next()); +?> +--EXPECT-- +NULL