mirror of https://github.com/django/django.git
Fixed #26269 -- Prohibited spaces in is_valid_ipv6_address().
This commit is contained in:
parent
22d2a5b00a
commit
ee69789f45
|
@ -1,6 +1,8 @@
|
|||
# This code was mostly based on ipaddr-py
|
||||
# Copyright 2007 Google Inc. https://github.com/google/ipaddr-py
|
||||
# Licensed under the Apache License, Version 2.0 (the "License").
|
||||
import re
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.six.moves import range
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
@ -155,6 +157,10 @@ def is_valid_ipv6_address(ip_str):
|
|||
"""
|
||||
from django.core.validators import validate_ipv4_address
|
||||
|
||||
symbols_re = re.compile(r'^[0-9a-fA-F:.]+$')
|
||||
if not symbols_re.match(ip_str):
|
||||
return False
|
||||
|
||||
# We need to have at least one ':'.
|
||||
if ':' not in ip_str:
|
||||
return False
|
||||
|
|
|
@ -28,6 +28,8 @@ class TestUtilsIPv6(unittest.TestCase):
|
|||
self.assertFalse(is_valid_ipv6_address('1::2:3:4:5:6:7:8'))
|
||||
self.assertFalse(is_valid_ipv6_address('1:2'))
|
||||
self.assertFalse(is_valid_ipv6_address('1:::2'))
|
||||
self.assertFalse(is_valid_ipv6_address('fe80::223: 6cff:fe8a:2e8a'))
|
||||
self.assertFalse(is_valid_ipv6_address('2a02::223:6cff :fe8a:2e8a'))
|
||||
|
||||
def test_validates_incorrect_with_v4mapping(self):
|
||||
self.assertFalse(is_valid_ipv6_address('::ffff:999.42.16.14'))
|
||||
|
|
Loading…
Reference in New Issue