summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/core/validators.py4
-rw-r--r--tests/validators/invalid_urls.txt1
-rw-r--r--tests/validators/valid_urls.txt4
3 files changed, 7 insertions, 2 deletions
diff --git a/django/core/validators.py b/django/core/validators.py
index 731ccf2d46..e085cd0641 100644
--- a/django/core/validators.py
+++ b/django/core/validators.py
@@ -87,7 +87,7 @@ class URLValidator(RegexValidator):
r'^(?:[a-z0-9.+-]*)://' # scheme is validated separately
r'(?:[^\s:@/]+(?::[^\s:@/]*)?@)?' # user:pass authentication
r'(?:' + ipv4_re + '|' + ipv6_re + '|' + host_re + ')'
- r'(?::\d{2,5})?' # port
+ r'(?::\d{1,5})?' # port
r'(?:[/?#][^\s]*)?' # resource path
r'\Z', re.IGNORECASE)
message = _('Enter a valid URL.')
@@ -129,7 +129,7 @@ class URLValidator(RegexValidator):
raise
else:
# Now verify IPv6 in the netloc part
- host_match = re.search(r'^\[(.+)\](?::\d{2,5})?$', urlsplit(value).netloc)
+ host_match = re.search(r'^\[(.+)\](?::\d{1,5})?$', urlsplit(value).netloc)
if host_match:
potential_ip = host_match[1]
try:
diff --git a/tests/validators/invalid_urls.txt b/tests/validators/invalid_urls.txt
index 4db8326ca1..8a04800d85 100644
--- a/tests/validators/invalid_urls.txt
+++ b/tests/validators/invalid_urls.txt
@@ -60,6 +60,7 @@ http://1.2.03.4
http://1.2.3.04
http://.www.foo.bar/
http://.www.foo.bar./
+http://[::1:2::3]:8/
http://[::1:2::3]:8080/
http://[]
http://[]:8080
diff --git a/tests/validators/valid_urls.txt b/tests/validators/valid_urls.txt
index 0df2239978..1420d727a8 100644
--- a/tests/validators/valid_urls.txt
+++ b/tests/validators/valid_urls.txt
@@ -2,6 +2,8 @@ http://www.djangoproject.com/
HTTP://WWW.DJANGOPROJECT.COM/
http://localhost/
http://example.com/
+http://example.com:0
+http://example.com:0/
http://example.com:65535
http://example.com:65535/
http://example.com./
@@ -37,6 +39,8 @@ http://userid:@example.com:8080
http://userid:@example.com:8080/
http://userid:password@example.com
http://userid:password@example.com/
+http://userid:password@example.com:8
+http://userid:password@example.com:8/
http://userid:password@example.com:8080
http://userid:password@example.com:8080/
http://userid:password@example.com:65535