diff --git a/NEWS b/NEWS index 796258815b278..a9ee769d7972e 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 5148668d945c7..caa96f9cf5e56 100644 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -667,6 +667,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