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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user