aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorGary Benson <gbenson@redhat.com>2006-10-05 09:32:57 +0000
committerGary Benson <gary@gcc.gnu.org>2006-10-05 09:32:57 +0000
commitafd4a54a00e939c45152735c6ad6f334808bc58d (patch)
treeba7f76167114b1b65938637a4371a9ad32ae6163 /libjava
parent7251a8d1c56502f42a6ef72e6a5ee9bde004a112 (diff)
downloadgcc-afd4a54a00e939c45152735c6ad6f334808bc58d.zip
gcc-afd4a54a00e939c45152735c6ad6f334808bc58d.tar.gz
gcc-afd4a54a00e939c45152735c6ad6f334808bc58d.tar.bz2
2006-10-05 Gary Benson <gbenson@redhat.com>
* java/net/SocketPermission.java (processHostport): Cope with IPv6 addresses with a one-digit first component. From-SVN: r117454
Diffstat (limited to 'libjava')
-rw-r--r--libjava/classpath/ChangeLog.gcj6
-rw-r--r--libjava/classpath/java/net/SocketPermission.java10
2 files changed, 13 insertions, 3 deletions
diff --git a/libjava/classpath/ChangeLog.gcj b/libjava/classpath/ChangeLog.gcj
index 91948d1..56d1cb9 100644
--- a/libjava/classpath/ChangeLog.gcj
+++ b/libjava/classpath/ChangeLog.gcj
@@ -1,3 +1,9 @@
+2006-10-05 Gary Benson <gbenson@redhat.com>
+
+ * java/net/SocketPermission.java
+ (processHostport): Cope with IPv6 addresses with a
+ one-digit first component.
+
2006-09-25 Tom Tromey <tromey@redhat.com>
* native/jni/gconf-peer/Makefile.in: Rebuilt.
diff --git a/libjava/classpath/java/net/SocketPermission.java b/libjava/classpath/java/net/SocketPermission.java
index 2d6343d..6488543 100644
--- a/libjava/classpath/java/net/SocketPermission.java
+++ b/libjava/classpath/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);