From b55535e3e7cdf1f96b876e28a360f3f5576b0843 Mon Sep 17 00:00:00 2001 From: gary <gary@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri, 1 Sep 2006 15:38:00 +0000 Subject: [PATCH] 2006-09-01 Gary Benson <gbenson@redhat.com> * java/net/InetAddress.java (getLocalHost): Refactor to avoid security check if getLocalHostname() fails and to provide more meaningful exceptions it the security check fails. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116627 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 6 ++++++ libjava/java/net/InetAddress.java | 36 +++++++++++-------------------- 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 65dcba1afd0c..594e2f2e22d6 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2006-09-01 Gary Benson <gbenson@redhat.com> + + * java/net/InetAddress.java (getLocalHost): Refactor to avoid + security check if getLocalHostname() fails and to provide more + meaningful exceptions it the security check fails. + 2006-09-01 Gary Benson <gbenson@redhat.com> * java/net/InetAddress.java (getByAddress): Create Inet4Address diff --git a/libjava/java/net/InetAddress.java b/libjava/java/net/InetAddress.java index 5bb9c0f68674..995e89756573 100644 --- a/libjava/java/net/InetAddress.java +++ b/libjava/java/net/InetAddress.java @@ -706,7 +706,10 @@ public class InetAddress implements Serializable String hostname = getLocalHostname(); - if (s != null) + if (hostname == null || hostname.length() == 0) + throw new UnknownHostException(); + + try { // "The Java Class Libraries" suggests that if the security // manager disallows getting the local host name, then @@ -714,37 +717,22 @@ public class InetAddress implements Serializable // However, the JDK 1.2 API claims to throw SecurityException, // which seems to suggest SecurityException is *not* caught. // In this case, experimentation shows that former is correct. - try + if (s != null) { // This is wrong, if the name returned from getLocalHostname() // is not a fully qualified name. FIXME. s.checkConnect (hostname, -1); } - catch (SecurityException ex) - { - hostname = null; - } + + localhost = new InetAddress (null, null); + lookup (hostname, localhost, false); } - - if (hostname != null && hostname.length() != 0) + catch (Exception ex) { - try - { - localhost = new InetAddress (null, null); - lookup (hostname, localhost, false); - } - catch (Exception ex) - { - UnknownHostException failure = new UnknownHostException(hostname); - failure.initCause(ex); - throw failure; - } + UnknownHostException failure = new UnknownHostException(hostname); + failure.initCause(ex); + throw failure; } - else - throw new UnknownHostException(); - - if (localhost == null) - localhost = new InetAddress (loopbackAddress, "localhost"); } /** -- GitLab