diff --git a/httpcore5/src/main/java/org/apache/hc/core5/net/InetAddressUtils.java b/httpcore5/src/main/java/org/apache/hc/core5/net/InetAddressUtils.java index 21dadf1cb..1ffaba89f 100644 --- a/httpcore5/src/main/java/org/apache/hc/core5/net/InetAddressUtils.java +++ b/httpcore5/src/main/java/org/apache/hc/core5/net/InetAddressUtils.java @@ -59,8 +59,7 @@ private InetAddressUtils() { } private static final String IPV4_BASIC_PATTERN_STRING = - "(([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){1}" + // initial first field, 1-255 - "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){2}" + // following 2 fields, 0-255 followed by . + "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}" + // First 3 fields, 0-255, followed by . "([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"; // final field, 0-255 private static final Pattern IPV4_PATTERN = diff --git a/httpcore5/src/test/java/org/apache/hc/core5/net/TestInetAddressUtils.java b/httpcore5/src/test/java/org/apache/hc/core5/net/TestInetAddressUtils.java index 3c1541fce..32e080a26 100644 --- a/httpcore5/src/test/java/org/apache/hc/core5/net/TestInetAddressUtils.java +++ b/httpcore5/src/test/java/org/apache/hc/core5/net/TestInetAddressUtils.java @@ -44,6 +44,7 @@ void testValidIPv4Address() { Assertions.assertTrue(InetAddressUtils.isIPv4("127.0.0.1")); Assertions.assertTrue(InetAddressUtils.isIPv4("192.168.0.0")); Assertions.assertTrue(InetAddressUtils.isIPv4("255.255.255.255")); + Assertions.assertTrue(InetAddressUtils.isIPv4("0.168.0.0")); } @Test @@ -52,7 +53,6 @@ void testInvalidIPv4Address() { Assertions.assertFalse(InetAddressUtils.isIPv4("g.ar.ba.ge")); Assertions.assertFalse(InetAddressUtils.isIPv4("192.168.0")); Assertions.assertFalse(InetAddressUtils.isIPv4("256.255.255.255")); - Assertions.assertFalse(InetAddressUtils.isIPv4("0.168.0.0")); //IP address that starts with zero not allowed } @Test