Merge changes from topic "am-f1eb5cc5-7ac1-4540-b9cf-e0577f9334e7" into oc-dev
* changes: [automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7am:97668ae137am:fddbf1b6b2am:d3c0db66b9am:373cfa75c0am:bdff04aba3am:7341805cacam:885a2ecf96am:54f1b302abam:6b1b3c9bdc[automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7am:97668ae137am:fddbf1b6b2am:d3c0db66b9am:373cfa75c0am:bdff04aba3am:7341805cacam:885a2ecf96am:54f1b302ab[automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7am:97668ae137am:fddbf1b6b2am:d3c0db66b9am:373cfa75c0am:bdff04aba3am:7341805cacam:885a2ecf96[automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7am:97668ae137am:fddbf1b6b2am:d3c0db66b9am:373cfa75c0am:bdff04aba3am:7341805cac[automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7am:97668ae137am:fddbf1b6b2am:d3c0db66b9am:373cfa75c0am:bdff04aba3[automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7am:97668ae137am:fddbf1b6b2am:d3c0db66b9am:373cfa75c0[automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7am:97668ae137am:fddbf1b6b2am:d3c0db66b9[automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7am:97668ae137am:fddbf1b6b2[automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7am:97668ae137[automerger] Adjust URI host parsing to stop on \ character. am:fa3afbd0e7Adjust URI host parsing to stop on \ character.
This commit is contained in:
committed by
Android (Google) Code Review
commit
36c202ed80
@@ -720,6 +720,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;
|
||||
@@ -758,6 +762,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++;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user