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
This commit is contained in:
Gary Benson 2006-10-05 09:32:57 +00:00 committed by Gary Benson
parent 7251a8d1c5
commit afd4a54a00
2 changed files with 13 additions and 3 deletions

View File

@ -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.

View File

@ -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);