aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorGary Benson <gbenson@redhat.com>2006-10-05 09:32:57 +0000
committerGary Benson <gbenson@redhat.com>2006-10-05 09:32:57 +0000
commit0dfcdc7f864869d7ee378fdca38d26fb666e035b (patch)
treeba7f76167114b1b65938637a4371a9ad32ae6163 /libjava
parente19fe2e4bfb530aee63b89e2482400748a56a219 (diff)
2006-10-05 Gary Benson <gbenson@redhat.com>
* java/net/SocketPermission.java (processHostport): Cope with IPv6 addresses with a one-digit first component. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@117454 138bc75d-0d04-0410-961f-82ee72b054a4
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 91948d1fe92..56d1cb91144 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 2d6343dc570..64885438aed 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);