summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorPaul Jensen <pauljensen@google.com>2016-05-26 13:30:59 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-05-26 13:30:59 +0000
commit8940d2b0ff2fb5a9cc9e12be8a7959670e4390ac (patch)
treed9668e3c8d1eea5bf802e139a6a7e45f68f231b4 /core/java/android
parent1b1fcbaab5169f824e803bcd97aa848e27dbcafb (diff)
parentaf0b4466ffe2ed09b288014d1d3a9ed308fe3c76 (diff)
Merge "Don\'t pass URL path and username/password to PAC scripts" into klp-dev
am: af0b4466ff * commit 'af0b4466ffe2ed09b288014d1d3a9ed308fe3c76': Don't pass URL path and username/password to PAC scripts Change-Id: I8a49a29ed1999ab811d3306dc46769d83c05244e
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/net/PacProxySelector.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/java/android/net/PacProxySelector.java b/core/java/android/net/PacProxySelector.java
index 8a2c2b6c675f..ce7b337bb9af 100644
--- a/core/java/android/net/PacProxySelector.java
+++ b/core/java/android/net/PacProxySelector.java
@@ -31,6 +31,7 @@ import java.net.Proxy.Type;
import java.net.ProxySelector;
import java.net.SocketAddress;
import java.net.URI;
+import java.net.URISyntaxException;
import java.util.List;
/**
@@ -65,7 +66,15 @@ public class PacProxySelector extends ProxySelector {
String response = null;
String urlString;
try {
+ // Strip path and username/password from URI so it's not visible to PAC script. The
+ // path often contains credentials the app does not want exposed to a potentially
+ // malicious PAC script.
+ if (!"http".equalsIgnoreCase(uri.getScheme())) {
+ uri = new URI(uri.getScheme(), null, uri.getHost(), uri.getPort(), "/", null, null);
+ }
urlString = uri.toURL().toString();
+ } catch (URISyntaxException e) {
+ urlString = uri.getHost();
} catch (MalformedURLException e) {
urlString = uri.getHost();
}