diff --git a/src/share/classes/sun/security/krb5/Config.java b/src/share/classes/sun/security/krb5/Config.java index 3b108622b0736fb4a0658f43a5d788d9887811f1..48e4e91a279a47b78c2f41fb01380086914c6715 100644 --- a/src/share/classes/sun/security/krb5/Config.java +++ b/src/share/classes/sun/security/krb5/Config.java @@ -763,9 +763,9 @@ public class Config { private static String trimmed(String s) { s = s.trim(); - if (s.isEmpty()) return s; - if (s.charAt(0) == '"' && s.charAt(s.length()-1) == '"' || - s.charAt(0) == '\'' && s.charAt(s.length()-1) == '\'') { + if (s.length() >= 2 && + ((s.charAt(0) == '"' && s.charAt(s.length()-1) == '"') || + (s.charAt(0) == '\'' && s.charAt(s.length()-1) == '\''))) { s = s.substring(1, s.length()-1).trim(); } return s; diff --git a/test/sun/security/krb5/ParseConfig.java b/test/sun/security/krb5/ParseConfig.java index ecbfa8af6a95660e72067e2e4778ff63eb3b494e..3a73956ae95c026e1526d2d2cf8a11571439b69c 100644 --- a/test/sun/security/krb5/ParseConfig.java +++ b/test/sun/security/krb5/ParseConfig.java @@ -22,7 +22,7 @@ */ /* * @test - * @bug 6319046 + * @bug 6319046 8055045 * @compile -XDignore.symbol.file ParseConfig.java * @run main/othervm ParseConfig * @summary Problem with parsing krb5.conf @@ -32,7 +32,8 @@ import sun.security.krb5.Config; public class ParseConfig { public static void main(String[] args) throws Exception { - System.setProperty("java.security.krb5.conf", System.getProperty("test.src", ".") +"/krb5.conf"); + System.setProperty("java.security.krb5.conf", + System.getProperty("test.src", ".") + "/krb5.conf"); Config config = Config.getInstance(); config.listTable(); @@ -44,5 +45,11 @@ public class ParseConfig { expected + "\""); } } + + // JDK-8055045: IOOBE when reading an empty value + config.get("empty1", "NOVAL.COM"); + config.get("empty2", "NOVAL.COM"); + config.get("quote1", "NOVAL.COM"); + config.get("quote2", "NOVAL.COM"); } } diff --git a/test/sun/security/krb5/krb5.conf b/test/sun/security/krb5/krb5.conf index 2a3a2dba8701b2b219e97f1ee1e68f1069cff59d..7962443b20e1d298963ab8f4155b7410923a471b 100644 --- a/test/sun/security/krb5/krb5.conf +++ b/test/sun/security/krb5/krb5.conf @@ -27,3 +27,9 @@ } } + NOVAL.COM = { + empty1 = + empty2 =. + quote1 = " + quote2 = ' + }