Aryan Ganjoo created NET-747:
--------------------------------

             Summary: SubnetUtils6 rejects IPv4-mapped IPv6 literals and 
formats mapped range as IPv4
                 Key: NET-747
                 URL: https://issues.apache.org/jira/browse/NET-747
             Project: Commons Net
          Issue Type: Bug
    Affects Versions: 3.13.0
            Reporter: Aryan Ganjoo


On current Commons Net master (39a85646d21002de4df6082342485dc2dedecd5a), 
SubnetUtils6 rejects valid IPv4-mapped IPv6 literals because 
InetAddress.getByName returns Inet4Address for ::ffff:0:0 and ::ffff:192.0.2.1. 
It also formats a high address inside ::ffff:0:0/96 as plain IPv4, which cannot 
round-trip through its IPv6 string API.

Reproduction:
1. new SubnetUtils6("::ffff:0:0/96") throws IllegalArgumentException: Could not 
parse [::ffff:0:0] - not an IPv6 address.
2. new SubnetUtils6("::/80").getInfo().getHighAddress() returns 255.255.255.255 
instead of an IPv6 literal; isInRange on that output then rejects it.

Expected: mapped IPv6 literals remain 128-bit addresses throughout parsing, 
formatting and range checks. Plain IPv4 input such as 192.0.2.1 should remain 
rejected.

A local two-file fix and regression test have been independently reviewed. The 
focused test was red on unmodified master (31 tests, one error) and green with 
the fix (31 tests, no failures/errors). The default Maven build is being 
checked separately; no PR or hosted CI result exists yet. This is distinct from 
NET-741, which introduced SubnetUtils6.

Prepared with AI assistance.



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

Reply via email to