From 4340145341a56a2600c8ef8c038d5acea534f74e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Tue, 29 Jun 2021 17:13:30 +0200 Subject: [PATCH] Prevent exception when validating empty Expression --- .../ExpressionLanguageSyntaxValidator.php | 4 ++++ .../ExpressionLanguageSyntaxValidatorTest.php | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/Symfony/Component/Validator/Constraints/ExpressionLanguageSyntaxValidator.php b/src/Symfony/Component/Validator/Constraints/ExpressionLanguageSyntaxValidator.php index 4b67da2c2be9c..7a3530239c611 100644 --- a/src/Symfony/Component/Validator/Constraints/ExpressionLanguageSyntaxValidator.php +++ b/src/Symfony/Component/Validator/Constraints/ExpressionLanguageSyntaxValidator.php @@ -39,6 +39,10 @@ public function validate($expression, Constraint $constraint): void throw new UnexpectedTypeException($constraint, ExpressionLanguageSyntax::class); } + if (null === $expression || '' === $expression) { + return; + } + if (!\is_string($expression)) { throw new UnexpectedValueException($expression, 'string'); } diff --git a/src/Symfony/Component/Validator/Tests/Constraints/ExpressionLanguageSyntaxValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/ExpressionLanguageSyntaxValidatorTest.php index 8cca54ed8a730..e87853129ffe8 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/ExpressionLanguageSyntaxValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/ExpressionLanguageSyntaxValidatorTest.php @@ -42,6 +42,21 @@ public function testExpressionWithoutNames() $this->assertNoViolation(); } + public function testExpressionEmpty() + { + $this->validator->validate(null, new ExpressionLanguageSyntax([ + 'message' => 'myMessage', + ])); + + $this->assertNoViolation(); + + $this->validator->validate('', new ExpressionLanguageSyntax([ + 'message' => 'myMessage', + ])); + + $this->assertNoViolation(); + } + public function testExpressionWithAllowedVariableName() { $this->validator->validate('a + 1', new ExpressionLanguageSyntax([ pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy