OSDN Git Service

2006-09-01 Gary Benson <gbenson@redhat.com>
authorgary <gary@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Sep 2006 10:06:13 +0000 (10:06 +0000)
committergary <gary@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Sep 2006 10:06:13 +0000 (10:06 +0000)
* 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

libjava/ChangeLog
libjava/java/net/InetAddress.java

index 91a90b6..833ae3f 100644 (file)
@@ -1,3 +1,8 @@
+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.
index 6ca72fe..1c31294 100644 (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);
   }