summaryrefslogtreecommitdiff
path: root/Zend/zend_interfaces.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2005-01-25 10:40:51 +0000
committerMarcus Boerger <helly@php.net>2005-01-25 10:40:51 +0000
commit82193adc09d7f107fcfedcb544b5a8f76e1dc33f (patch)
tree987bc8a81f98b75b9b8a3f43115917824245ae7e /Zend/zend_interfaces.c
parent14e54cdc1e438f9149f90f652c0497e82f81497a (diff)
downloadphp-git-82193adc09d7f107fcfedcb544b5a8f76e1dc33f.tar.gz
- Bugfix #26229 (getIterator() segfaults when it returns arrays or scalars)
Diffstat (limited to 'Zend/zend_interfaces.c')
-rwxr-xr-xZend/zend_interfaces.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index 9905e25861..a6658133e4 100755
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
@@ -21,6 +21,7 @@
#include "zend.h"
#include "zend_API.h"
#include "zend_interfaces.h"
+#include "zend_exceptions.h"
ZEND_API zend_class_entry *zend_ce_traversable;
ZEND_API zend_class_entry *zend_ce_aggregate;
@@ -275,7 +276,7 @@ static zend_object_iterator *zend_user_it_get_new_iterator(zend_class_entry *ce,
if (!ce || !ce_it || !ce_it->get_iterator || (ce_it->get_iterator == zend_user_it_get_new_iterator && iterator == object)) {
if (!EG(exception))
{
- zend_error(E_WARNING, "Objects returned by %s::getIterator() must be traversable or implement interface Iterator", ce->name);
+ zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Objects returned by %s::getIterator() must be traversable or implement interface Iterator", ce->name);
}
if (iterator)
{