From 4fab518384b1525f2f126643c57f1df6446557df Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 19 Feb 2024 16:53:53 +0000 Subject: [PATCH] PluginManager: do not accept generator functions as event handlers closes #4912 I didn't merge the original PR because this needs to be checked for explicitly registered handlers as well as auto-detected ones from listeners. --- src/plugin/PluginManager.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/plugin/PluginManager.php b/src/plugin/PluginManager.php index 301c66854..198e4e893 100644 --- a/src/plugin/PluginManager.php +++ b/src/plugin/PluginManager.php @@ -650,6 +650,11 @@ class PluginManager{ $handlerName = Utils::getNiceClosureName($handler); + $reflect = new \ReflectionFunction($handler); + if($reflect->isGenerator()){ + throw new PluginException("Generator function $handlerName cannot be used as an event handler"); + } + if(!$plugin->isEnabled()){ throw new PluginException("Plugin attempted to register event handler " . $handlerName . "() to event " . $event . " while not enabled"); }