Commit 32c8e43e authored by Amine Yaiche's avatar Amine Yaiche Committed by Tim Graham
Browse files

Fixed #26378 -- Allowed a left byte of zero in mixed IPv4/IPv6 validation.

parent 157d7f1f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ def clean_ipv6_address(ip_str, unpack_ipv4=False,

    for index in range(len(hextets)):
        # Remove leading zeroes
        if '.' not in hextets[index]:
            hextets[index] = hextets[index].lstrip('0')
        if not hextets[index]:
            hextets[index] = '0'
+2 −0
Original line number Diff line number Diff line
@@ -50,6 +50,8 @@ class TestUtilsIPv6(unittest.TestCase):
        self.assertEqual(clean_ipv6_address('::ffff:0a0a:0a0a'), '::ffff:10.10.10.10')
        self.assertEqual(clean_ipv6_address('::ffff:1234:1234'), '::ffff:18.52.18.52')
        self.assertEqual(clean_ipv6_address('::ffff:18.52.18.52'), '::ffff:18.52.18.52')
        self.assertEqual(clean_ipv6_address('::ffff:0.52.18.52'), '::ffff:0.52.18.52')
        self.assertEqual(clean_ipv6_address('::ffff:0.0.0.0'), '::ffff:0.0.0.0')

    def test_unpacks_ipv4(self):
        self.assertEqual(clean_ipv6_address('::ffff:0a0a:0a0a', unpack_ipv4=True), '10.10.10.10')