Commit 7229b95c by Gary Benson Committed by Gary Benson

InetAddress.java (getByName, [...]): Only perform security check when DNS lookups are required.

2006-09-01  Gary Benson  <gbenson@redhat.com>

	* java/net/InetAddress.java (getByName, getAllByName):
	Only perform security check when DNS lookups are required.

From-SVN: r116621
parent c9e4c7b5
2006-09-01 Gary Benson <gbenson@redhat.com>
* java/net/InetAddress.java (getByName, getAllByName):
Only perform security check when DNS lookups are required.
2006-08-31 Keith Seitz <keiths@redhat.com>
* include/jvmti_md.h: New file.
......
......@@ -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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment