Hao Zhong created IO-805:
----------------------------

             Summary: FilenameUtils.isIPv4Address does not handle illegal 
integers
                 Key: IO-805
                 URL: https://issues.apache.org/jira/browse/IO-805
             Project: Commons IO
          Issue Type: Bug
            Reporter: Hao Zhong


{code:java}
 private static boolean isIPv4Address(final String name) {
        final Matcher m = IPV4_PATTERN.matcher(name);
        if (!m.matches() || m.groupCount() != 4) {
            return false;
        }        // verify that address subgroups are legal
        for (int i = 1; i <= 4; i++) {
            final String ipSegment = m.group(i);
            final int iIpSegment = Integer.parseInt(ipSegment);
            if (iIpSegment > IPV4_MAX_OCTET_VALUE) {
                return false;
            }            if (ipSegment.length() > 1 && 
ipSegment.startsWith("0")) {
                return false;
            }        }        return true;
    } {code}
In the above code,  final int iIpSegment = Integer.parseInt(ipSegment) will 
throw exceptions when ipSegment is illegal. 

 

The nearby isIPv6Address provides an example to handle the problem:

 
{code:java}
  private static boolean isIPv6Address(final String inet6Address) {
    ...
     try {                    octetInt = Integer.parseInt(octet, BASE_16);      
          } catch (final NumberFormatException e) {                    return 
false;                }
}{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to