From 509f241ddbc642e4689bd07ab532c62e57a379d4 Mon Sep 17 00:00:00 2001 From: chegar Date: Thu, 1 Sep 2011 13:53:59 +0100 Subject: [PATCH] 7041800: URI.equals may incorrectly return true with escaped octets Reviewed-by: alanb, michaelm --- src/share/classes/java/net/URI.java | 2 ++ test/java/net/URI/Test.java | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/share/classes/java/net/URI.java b/src/share/classes/java/net/URI.java index 5712821e9..6997a4274 100644 --- a/src/share/classes/java/net/URI.java +++ b/src/share/classes/java/net/URI.java @@ -1711,6 +1711,8 @@ public final class URI i++; continue; } + if (d != '%') + return false; i++; if (toLower(s.charAt(i)) != toLower(t.charAt(i))) return false; diff --git a/test/java/net/URI/Test.java b/test/java/net/URI/Test.java index fb0fa3326..b24bedf19 100644 --- a/test/java/net/URI/Test.java +++ b/test/java/net/URI/Test.java @@ -23,7 +23,7 @@ /* @test * @summary Unit test for java.net.URI - * @bug 4464135 4505046 4503239 4438319 4991359 4866303 7023363 + * @bug 4464135 4505046 4503239 4438319 4991359 4866303 7023363 7041800 * @author Mark Reinhold */ @@ -1428,6 +1428,8 @@ public class Test { gt(s, new URI("http://jag:CafeBabe@java.sun.com:94/b/c/d?q#f")); lt(s, new URI("http://jag:cafebabe@java.sun.com:94/b/c/d?r#f")); lt(s, new URI("http://jag:cafebabe@java.sun.com:94/b/c/d?q#g")); + eq(new URI("http://host/a%00bcd"), new URI("http://host/a%00bcd")); + ne(new URI("http://host/a%00bcd"), new URI("http://host/aZ00bcd")); lt("p", "s:p"); lt("s:p", "T:p"); -- GitLab