From: Gary Benson Date: Fri, 1 Sep 2006 10:06:13 +0000 (+0000) Subject: InetAddress.java (getByName, [...]): Only perform security check when DNS lookups... X-Git-Tag: releases/gcc-4.2.0~1568 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7229b95cc036b978a526c77395c028320621765f;p=thirdparty%2Fgcc.git InetAddress.java (getByName, [...]): Only perform security check when DNS lookups are required. 2006-09-01 Gary Benson * java/net/InetAddress.java (getByName, getAllByName): Only perform security check when DNS lookups are required. From-SVN: r116621 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 91a90b6a37fe..833ae3f2f953 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2006-09-01 Gary Benson + + * java/net/InetAddress.java (getByName, getAllByName): + Only perform security check when DNS lookups are required. + 2006-08-31 Keith Seitz * include/jvmti_md.h: New file. diff --git a/libjava/java/net/InetAddress.java b/libjava/java/net/InetAddress.java index 6ca72fe3e244..1c312940c83f 100644 --- a/libjava/java/net/InetAddress.java +++ b/libjava/java/net/InetAddress.java @@ -592,14 +592,10 @@ public class InetAddress implements Serializable throws UnknownHostException { // If null or the empty string is supplied, the loopback address - // is returned. Note that this is permitted without a security check. + // is returned. if (hostname == null || hostname.length() == 0) return loopback; - SecurityManager s = System.getSecurityManager(); - if (s != null) - s.checkConnect(hostname, -1); - // Assume that the host string is an IP address byte[] address = aton(hostname); if (address != null) @@ -623,6 +619,11 @@ public class InetAddress implements Serializable throw new UnknownHostException ("Address has invalid length"); } + // Perform security check before resolving + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkConnect(hostname, -1); + // Try to resolve the host by DNS InetAddress result = new InetAddress(null, null); lookup (hostname, result, false); @@ -650,14 +651,10 @@ public class InetAddress implements Serializable throws UnknownHostException { // If null or the empty string is supplied, the loopback address - // is returned. Note that this is permitted without a security check. + // is returned. if (hostname == null || hostname.length() == 0) return new InetAddress[] {loopback}; - SecurityManager s = System.getSecurityManager(); - if (s != null) - s.checkConnect(hostname, -1); - // Check if hostname is an IP address byte[] address = aton (hostname); if (address != null) @@ -667,6 +664,11 @@ public class InetAddress implements Serializable return result; } + // Perform security check before resolving + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkConnect(hostname, -1); + // Try to resolve the hostname by DNS return lookup (hostname, null, true); }