From d28c3ff58f8c8ea2e2c20071709a44c8441f27be Mon Sep 17 00:00:00 2001 From: Aryel Tupinamba Date: Mon, 11 Oct 2021 11:33:54 +0200 Subject: [PATCH] bug #43038 [Validator] Fixes URL validation for single-char subdomains. --- .../Component/Validator/Constraints/UrlValidator.php | 2 +- .../Validator/Tests/Constraints/UrlValidatorTest.php | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Validator/Constraints/UrlValidator.php b/src/Symfony/Component/Validator/Constraints/UrlValidator.php index 4d962eb098760..5bac10c8fe604 100644 --- a/src/Symfony/Component/Validator/Constraints/UrlValidator.php +++ b/src/Symfony/Component/Validator/Constraints/UrlValidator.php @@ -26,7 +26,7 @@ class UrlValidator extends ConstraintValidator (%s):// # protocol (((?:[\_\.\pL\pN-]|%%[0-9A-Fa-f]{2})+:)?((?:[\_\.\pL\pN-]|%%[0-9A-Fa-f]{2})+)@)? # basic auth ( - ([\pL\pN\pS]+\.?[\pL\pN\pS\-\_]+)+(\.?([\pL\pN]|xn\-\-[\pL\pN-]+)+\.?) # a domain name + ([\pL\pN\pS\-\_]+\.)*(([\pL\pN]|xn\-\-[\pL\pN-]+)+\.?) # a domain name | # or \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} # an IP address | # or diff --git a/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php index ca2a27db4c780..b224671c5340c 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/UrlValidatorTest.php @@ -106,6 +106,10 @@ public function getValidUrls() ['http://a.pl'], ['http://www.example.com'], ['http://tt.example.com'], + ['http://m.example.com'], + ['http://m.m.m.example.com'], + ['http://example.m.example.com'], + ['https://long-string_with+symbols.m.example.com'], ['http://www.example.com.'], ['http://www.example.museum'], ['https://example.com/'], @@ -268,6 +272,8 @@ public function getInvalidUrls() ['http://'], ['http://www..com'], ['http://www..example.com'], + ['http://www..m.example.com'], + ['http://.m.example.com'], ['http://wwww.example..com'], ['http://.www.example.com'], ];