diff --git a/NEWS b/NEWS index 411c5de823e17..db78d1404db09 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,7 @@ PHP NEWS . Fixed bug GH-14590 (Memory leak in FPM test gh13563-conf-bool-env.phpt. (nielsdos) . Fixed OSS-Fuzz #69765. (nielsdos) + . Fixed bug GH-14741 (Segmentation fault in Zend/zend_types.h). (nielsdos) - Dom: . Fixed bug GH-14702 (DOMDocument::xinclude() crash). (nielsdos) diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index 42fbccd4a746f..b8cc5e94caca8 100644 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -666,6 +666,7 @@ ZEND_API void zend_register_interfaces(void) memcpy(&zend_internal_iterator_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); + zend_internal_iterator_handlers.clone_obj = NULL; zend_internal_iterator_handlers.free_obj = zend_internal_iterator_free; } /* }}} */ diff --git a/ext/zend_test/tests/gh14741.phpt b/ext/zend_test/tests/gh14741.phpt new file mode 100644 index 0000000000000..389692f3de2bd --- /dev/null +++ b/ext/zend_test/tests/gh14741.phpt @@ -0,0 +1,17 @@ +--TEST-- +GH-14741 (Segmentation fault in Zend/zend_types.h) +--EXTENSIONS-- +zend_test +--FILE-- +getIterator(); +try { + clone $it; +} catch (Error $e) { + echo $e->getMessage(), "\n"; +} +?> +--EXPECT-- +Trying to clone an uncloneable object of class InternalIterator +TraversableTest::drop