8055045: StringIndexOutOfBoundsException while reading krb5.conf

Reviewed-by: mullan
This commit is contained in:
Weijun Wang 2015-01-26 09:29:29 +08:00
parent 4775e0767d
commit ddba00b834
3 changed files with 18 additions and 5 deletions
jdk
src/java.security.jgss/share/classes/sun/security/krb5
test/sun/security/krb5/config

@ -913,9 +913,9 @@ public class Config {
private static String unquote(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;

@ -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");
}
}

@ -27,3 +27,9 @@
}
}
NOVAL.COM = {
empty1 =
empty2 =.
quote1 = "
quote2 = '
}