diff options
author | Gary Benson <gbenson@redhat.com> | 2006-09-22 13:24:32 +0000 |
---|---|---|
committer | Gary Benson <gbenson@redhat.com> | 2006-09-22 13:24:32 +0000 |
commit | f930796d752235b4f23957a7c663862df5609d42 (patch) | |
tree | 75c00d522793cac934f6ca8fdea70409dca96107 /java/net | |
parent | 19c4cc662174fd98d1fb6e2c9ad9acbef4716c9f (diff) | |
download | classpath-f930796d752235b4f23957a7c663862df5609d42.tar.gz |
2006-09-22 Gary Benson <gbenson@redhat.com>
* java/net/SocketPermission.java
(processHostport): Cope with IPv6 addresses with a
one-digit first component.
Diffstat (limited to 'java/net')
-rw-r--r-- | java/net/SocketPermission.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/java/net/SocketPermission.java b/java/net/SocketPermission.java index 2d6343dc5..64885438a 100644 --- a/java/net/SocketPermission.java +++ b/java/net/SocketPermission.java @@ -193,16 +193,19 @@ public final class SocketPermission extends Permission implements Serializable if (hostport.charAt(0) == '[') return hostport; - int colons = 0, last_colon = 0; + int colons = 0; + boolean colon_allowed = true; for (int i = 0; i < hostport.length(); i++) { if (hostport.charAt(i) == ':') { - if (i - last_colon == 1) + if (!colon_allowed) throw new IllegalArgumentException("Ambiguous hostport part"); colons++; - last_colon = i; + colon_allowed = false; } + else + colon_allowed = true; } switch (colons) @@ -218,6 +221,7 @@ public final class SocketPermission extends Permission implements Serializable case 8: // an IPv6 address with ports + int last_colon = hostport.lastIndexOf(':'); return "[" + hostport.substring(0, last_colon) + "]" + hostport.substring(last_colon); |