diff options
author | gary <gary@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-09-01 10:06:13 +0000 |
---|---|---|
committer | gary <gary@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-09-01 10:06:13 +0000 |
commit | 117a94177aab6277c45ce41767c4412cb77ecdf9 (patch) | |
tree | 42d792ab7f0c8487eb362426abe4308125d23950 /libjava/java/net | |
parent | 23669032915f5c721c8bf5abd9a9402e42daab53 (diff) | |
download | ppe42-gcc-117a94177aab6277c45ce41767c4412cb77ecdf9.tar.gz ppe42-gcc-117a94177aab6277c45ce41767c4412cb77ecdf9.zip |
2006-09-01 Gary Benson <gbenson@redhat.com>
* java/net/InetAddress.java (getByName, getAllByName):
Only perform security check when DNS lookups are required.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116621 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/net')
-rw-r--r-- | libjava/java/net/InetAddress.java | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/libjava/java/net/InetAddress.java b/libjava/java/net/InetAddress.java index 6ca72fe3e24..1c312940c83 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); } |