8241138: http.nonProxyHosts=* causes StringIndexOutOfBoundsException in DefaultProxySelector

Reviewed-by: dfuchs, chegar
This commit is contained in:
Jaikiran Pai 2020-03-24 15:47:51 +05:30
parent a309046028
commit 59af1c2af4
2 changed files with 12 additions and 4 deletions
src/java.base/share/classes/sun/net/spi
test/jdk/java/net/ProxySelector

@ -1,5 +1,5 @@
/*
* Copyright (c) 2003, 2019, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2003, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -385,7 +385,9 @@ public class DefaultProxySelector extends ProxySelector {
*/
static String disjunctToRegex(String disjunct) {
String regex;
if (disjunct.startsWith("*") && disjunct.endsWith("*")) {
if (disjunct.equals("*")) {
regex = ".*";
} else if (disjunct.startsWith("*") && disjunct.endsWith("*")) {
regex = ".*" + quote(disjunct.substring(1, disjunct.length() - 1)) + ".*";
} else if (disjunct.startsWith("*")) {
regex = ".*" + quote(disjunct.substring(1));

@ -1,5 +1,5 @@
/*
* Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@ -23,7 +23,7 @@
/*
* @test
* @bug 8035158 8145732 8144300
* @bug 8035158 8145732 8144300 8241138
* @run main/othervm B8035158
*/
@ -155,6 +155,12 @@ public class B8035158 {
false));
t.add(new TestCase("*google.*", "http://google.co.uk",
false));
t.add(new TestCase("*", "http://google.co.uk",false));
t.add(new TestCase("localhost|*", "http://google.co.uk",false));
t.add(new TestCase("*|oracle.com", "http://google.co.uk",false));
t.add(new TestCase("*|oracle.com|*", "http://google.co.uk",false));
t.add(new TestCase("*|*", "http://google.co.uk",false));
t.add(new TestCase("*oracle.com", "http://my.oracle.com", false));
t.add(new TestCase("google.com|bing.com|yahoo.com", "http://127.0.0.1", false));