Fix a bug in NetUtil.createByteArrayFromIpAddressString()
Motivation: An IPv6 string can have a zone index which is followed by the '%' sign. When a user passes an IPv6 string with a zone index, NetUtil.createByteArrayFromIpAddressString() returns an incorrect value. Modification: - Strip the zone index before conversion Result: An IPv6 string with a zone index is decoded correctly.
This commit is contained in:
parent
f325c261cc
commit
5286ef2f4b
@ -284,6 +284,11 @@ public final class NetUtil {
|
|||||||
ipAddressString = ipAddressString.substring(1, ipAddressString.length() - 1);
|
ipAddressString = ipAddressString.substring(1, ipAddressString.length() - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int percentPos = ipAddressString.indexOf('%');
|
||||||
|
if (percentPos >= 0) {
|
||||||
|
ipAddressString = ipAddressString.substring(0, percentPos);
|
||||||
|
}
|
||||||
|
|
||||||
StringTokenizer tokenizer = new StringTokenizer(ipAddressString, ":.", true);
|
StringTokenizer tokenizer = new StringTokenizer(ipAddressString, ":.", true);
|
||||||
ArrayList<String> hexStrings = new ArrayList<String>();
|
ArrayList<String> hexStrings = new ArrayList<String>();
|
||||||
ArrayList<String> decStrings = new ArrayList<String>();
|
ArrayList<String> decStrings = new ArrayList<String>();
|
||||||
|
Loading…
Reference in New Issue
Block a user