From c537c854c72e57c5561d9511d13ca993957c685c Mon Sep 17 00:00:00 2001 From: Philipp Cordes Date: Fri, 25 Jan 2019 00:11:57 +0100 Subject: [PATCH] Fix infinite recursion when passed an empty string --- .../Security/Core/Authorization/AccessDecisionManager.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php b/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php index 39cca72b7b9bc..5f5104f2a5b99 100644 --- a/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php +++ b/src/Symfony/Component/Security/Core/Authorization/AccessDecisionManager.php @@ -42,8 +42,9 @@ class AccessDecisionManager implements AccessDecisionManagerInterface */ public function __construct($voters = [], $strategy = self::STRATEGY_AFFIRMATIVE, $allowIfAllAbstainDecisions = false, $allowIfEqualGrantedDeniedDecisions = true) { + $strategy = (string) $strategy; $strategyMethod = 'decide'.ucfirst($strategy); - if (!\is_callable([$this, $strategyMethod])) { + if (!\is_callable([$this, $strategyMethod]) || 0 === \strlen($strategy)) { throw new \InvalidArgumentException(sprintf('The strategy "%s" is not supported.', $strategy)); }