From cee365dbf009df4b4c702d79a8d20ff7f30d9e86 Mon Sep 17 00:00:00 2001 From: Arnaud Le Blanc Date: Tue, 9 Sep 2008 19:43:52 +0000 Subject: [PATCH] Fixed bug #46031 (Segfault in AppendIterator::next) --- ext/spl/spl_iterators.c | 3 +++ ext/spl/tests/bug46031.phpt | 9 +++++++++ 2 files changed, 12 insertions(+) create mode 100644 ext/spl/tests/bug46031.phpt 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 -- 2.50.1