Title: [206547] trunk
Revision
206547
Author
achristen...@apple.com
Date
2016-09-28 14:12:04 -0700 (Wed, 28 Sep 2016)

Log Message

URLParser should correctly canonicalize uppercase IPv6 addresses
https://bugs.webkit.org/show_bug.cgi?id=162680

Reviewed by Tim Horton.

Source/WebCore:

Covered by a new API test.

* platform/URLParser.cpp:
(WebCore::URLParser::parseIPv6Host):
If there is an uppercase character in the IPv6 address part, then it is a syntax violation
because the canonicalized IPv6 address differs from the input String.

Tools:

* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::TEST_F):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (206546 => 206547)


--- trunk/Source/WebCore/ChangeLog	2016-09-28 21:08:41 UTC (rev 206546)
+++ trunk/Source/WebCore/ChangeLog	2016-09-28 21:12:04 UTC (rev 206547)
@@ -1,3 +1,17 @@
+2016-09-28  Alex Christensen  <achristen...@webkit.org>
+
+        URLParser should correctly canonicalize uppercase IPv6 addresses
+        https://bugs.webkit.org/show_bug.cgi?id=162680
+
+        Reviewed by Tim Horton.
+
+        Covered by a new API test.
+
+        * platform/URLParser.cpp:
+        (WebCore::URLParser::parseIPv6Host):
+        If there is an uppercase character in the IPv6 address part, then it is a syntax violation
+        because the canonicalized IPv6 address differs from the input String.
+
 2016-09-28  Chris Dumez  <cdu...@apple.com>
 
         Unreviewed, fix iOS build.

Modified: trunk/Source/WebCore/platform/URLParser.cpp (206546 => 206547)


--- trunk/Source/WebCore/platform/URLParser.cpp	2016-09-28 21:08:41 UTC (rev 206546)
+++ trunk/Source/WebCore/platform/URLParser.cpp	2016-09-28 21:12:04 UTC (rev 206547)
@@ -2111,6 +2111,8 @@
                 break;
             if (!isASCIIHexDigit(*c))
                 break;
+            if (isASCIIUpper(*c))
+                syntaxViolation(hostBegin);
             value = value * 0x10 + toASCIIHexValue(*c);
             advance(c, hostBegin);
         }

Modified: trunk/Tools/ChangeLog (206546 => 206547)


--- trunk/Tools/ChangeLog	2016-09-28 21:08:41 UTC (rev 206546)
+++ trunk/Tools/ChangeLog	2016-09-28 21:12:04 UTC (rev 206547)
@@ -1,3 +1,13 @@
+2016-09-28  Alex Christensen  <achristen...@webkit.org>
+
+        URLParser should correctly canonicalize uppercase IPv6 addresses
+        https://bugs.webkit.org/show_bug.cgi?id=162680
+
+        Reviewed by Tim Horton.
+
+        * TestWebKitAPI/Tests/WebCore/URLParser.cpp:
+        (TestWebKitAPI::TEST_F):
+
 2016-09-27  Wenson Hsieh  <wenson_hs...@apple.com>
 
         Adopt MediaRemote SPI to achieve desired Now Playing behavior

Modified: trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp (206546 => 206547)


--- trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp	2016-09-28 21:08:41 UTC (rev 206546)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/URLParser.cpp	2016-09-28 21:12:04 UTC (rev 206547)
@@ -250,6 +250,7 @@
     checkURL("about:~", {"about", "", "", "", 0, "~", "", "", "about:~"});
     checkURL("https://@test@test@example:800\\path@end", {"", "", "", "", 0, "", "", "", "https://@test@test@example:800\\path@end"});
     checkURL("http://www.example.com/#a\nb\rc\td", {"http", "", "", "www.example.com", 0, "/", "", "abcd", "http://www.example.com/#abcd"});
+    checkURL("http://[A:b:c:DE:fF:0:1:aC]/", {"http", "", "", "[a:b:c:de:ff:0:1:ac]", 0, "/", "", "", "http://[a:b:c:de:ff:0:1:ac]/"});
 
     // This disagrees with the web platform test for http://:@www.example.com but agrees with Chrome and URL::parse,
     // and Firefox fails the web platform test differently. Maybe the web platform test ought to be changed.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to