lbarnaud Tue Sep 9 19:43:52 2008 UTC
Added files:
/php-src/ext/spl/tests bug46031.phpt
Modified files:
/php-src/ext/spl spl_iterators.c
Log:
Fixed bug #46031 (Segfault in AppendIterator::next)
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_iterators.c?r1=1.177&r2=1.178&diff_format=u
Index: php-src/ext/spl/spl_iterators.c
diff -u php-src/ext/spl/spl_iterators.c:1.177
php-src/ext/spl/spl_iterators.c:1.178
--- php-src/ext/spl/spl_iterators.c:1.177 Fri Aug 8 22:06:42 2008
+++ php-src/ext/spl/spl_iterators.c Tue Sep 9 19:43:52 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_iterators.c,v 1.177 2008/08/08 22:06:42 colder Exp $ */
+/* $Id: spl_iterators.c,v 1.178 2008/09/09 19:43:52 lbarnaud Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -1499,6 +1499,9 @@
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);
}
http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/bug46031.phpt?view=markup&rev=1.1
Index: php-src/ext/spl/tests/bug46031.phpt
+++ php-src/ext/spl/tests/bug46031.phpt
--TEST--
Bug #46031 (Segfault in AppendIterator::next)
--FILE--
<?php
$x = new AppendIterator();
var_dump($x->next());
?>
--EXPECT--
NULL
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php