diff options
| author | 2018-02-01 10:02:43 +0000 | |
|---|---|---|
| committer | 2018-02-01 10:02:43 +0000 | |
| commit | aa549104dc7bb0e3564b7cc1bc2bed58fb83e682 (patch) | |
| tree | 5eb43cc8918b5a199f157e06127add84a02611a0 | |
| parent | c26b8635b70c4b36e614e10aeb8cfbe7fc1f3243 (diff) | |
| parent | 885a2ecf9620a1fd7d65d7a01b6855565f164013 (diff) | |
Merge changes from topic "am-f1eb5cc5-7ac1-4540-b9cf-e0577f9334e7" into nyc-mr1-dev
* changes:
[automerger] Adjust URI host parsing to stop on \ character. am: fa3afbd0e7 am: 97668ae137 am: fddbf1b6b2 am: d3c0db66b9 am: 373cfa75c0 am: bdff04aba3 am: 7341805cac
[automerger] Adjust URI host parsing to stop on \ character. am: fa3afbd0e7 am: 97668ae137 am: fddbf1b6b2 am: d3c0db66b9 am: 373cfa75c0 am: bdff04aba3
[automerger] Adjust URI host parsing to stop on \ character. am: fa3afbd0e7 am: 97668ae137 am: fddbf1b6b2 am: d3c0db66b9 am: 373cfa75c0
[automerger] Adjust URI host parsing to stop on \ character. am: fa3afbd0e7 am: 97668ae137 am: fddbf1b6b2 am: d3c0db66b9
[automerger] Adjust URI host parsing to stop on \ character. am: fa3afbd0e7 am: 97668ae137 am: fddbf1b6b2
[automerger] Adjust URI host parsing to stop on \ character. am: fa3afbd0e7 am: 97668ae137
[automerger] Adjust URI host parsing to stop on \ character. am: fa3afbd0e7
Adjust URI host parsing to stop on \ character.
| -rw-r--r-- | core/java/android/net/Uri.java | 8 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/net/UriTest.java | 6 |
2 files changed, 14 insertions, 0 deletions
diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java index a84f74a80859..6c069be07e3e 100644 --- a/core/java/android/net/Uri.java +++ b/core/java/android/net/Uri.java @@ -719,6 +719,10 @@ public abstract class Uri implements Parcelable, Comparable<Uri> { LOOP: while (end < length) { switch (uriString.charAt(end)) { case '/': // Start of path + case '\\':// Start of path + // Per http://url.spec.whatwg.org/#host-state, the \ character + // is treated as if it were a / character when encountered in a + // host case '?': // Start of query case '#': // Start of fragment break LOOP; @@ -757,6 +761,10 @@ public abstract class Uri implements Parcelable, Comparable<Uri> { case '#': // Start of fragment return ""; // Empty path. case '/': // Start of path! + case '\\':// Start of path! + // Per http://url.spec.whatwg.org/#host-state, the \ character + // is treated as if it were a / character when encountered in a + // host break LOOP; } pathStart++; diff --git a/core/tests/coretests/src/android/net/UriTest.java b/core/tests/coretests/src/android/net/UriTest.java index 27b7f9e185bb..ea0347d67ad7 100644 --- a/core/tests/coretests/src/android/net/UriTest.java +++ b/core/tests/coretests/src/android/net/UriTest.java @@ -192,6 +192,12 @@ public class UriTest extends TestCase { assertEquals("a:a@example.com:a@example2.com", uri.getAuthority()); assertEquals("example2.com", uri.getHost()); assertEquals(-1, uri.getPort()); + assertEquals("/path", uri.getPath()); + + uri = Uri.parse("http://a.foo.com\\.example.com/path"); + assertEquals("a.foo.com", uri.getHost()); + assertEquals(-1, uri.getPort()); + assertEquals("\\.example.com/path", uri.getPath()); } @SmallTest |