From 506e49c6e1c8d1f91dbba936d0e165b62278a3ed Mon Sep 17 00:00:00 2001 From: Arnaud Le Blanc Date: Tue, 9 Sep 2008 19:44:15 +0000 Subject: [PATCH] MFH: 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 10426c3192..f9111dba3c 100755 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -1445,6 +1445,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.40.0