jdk/src/java.base/share/classes/sun/security/util/HostnameChecker.java
changeset 28865 4729ff15079b
parent 25859 3317bb8137f4
child 30905 bba6fefdd660
--- a/jdk/src/java.base/share/classes/sun/security/util/HostnameChecker.java	Tue Feb 10 11:34:13 2015 -0800
+++ b/jdk/src/java.base/share/classes/sun/security/util/HostnameChecker.java	Tue Feb 10 23:32:48 2015 +0000
@@ -26,6 +26,8 @@
 package sun.security.util;
 
 import java.io.IOException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import java.util.*;
 
 import java.security.Principal;
@@ -148,6 +150,17 @@
                 String ipAddress = (String)next.get(1);
                 if (expectedIP.equalsIgnoreCase(ipAddress)) {
                     return;
+                } else {
+                    // compare InetAddress objects in order to ensure
+                    // equality between a long IPv6 address and its
+                    // abbreviated form.
+                    try {
+                        if (InetAddress.getByName(expectedIP).equals(
+                                InetAddress.getByName(ipAddress))) {
+                            return;
+                        }
+                    } catch (UnknownHostException e) {
+                    } catch (SecurityException e) {}
                 }
             }
         }