Be a little more conservative with the IPv6 support in the Sanitizer.
authorC. Scott Ananian <cscott@cscott.net>
Fri, 28 Aug 2015 14:23:47 +0000 (10:23 -0400)
committerC. Scott Ananian <cscott@cscott.net>
Fri, 28 Aug 2015 14:23:47 +0000 (10:23 -0400)
This isn't strictly necessary, but it matches the production used in
Parsoid better.

Change-Id: I542b1f71fe9e917fef5718a6df8ebb98735f7fb4

includes/Sanitizer.php

index fbf3234..c02bdc9 100644 (file)
@@ -1809,7 +1809,7 @@ class Sanitizer {
                        $host = preg_replace( $strip, '', $host );
 
                        // IPv6 host names are bracketed with [].  Url-decode these.
-                       if ( substr_compare( "//%5B", $host, 0, 5 ) === 0 && preg_match( '!^//%5B(.*?)%5D((:\d+)?)$!', $host, $matches ) ) {
+                       if ( substr_compare( "//%5B", $host, 0, 5 ) === 0 && preg_match( '!^//%5B([0-9A-Fa-f:.]+)%5D((:\d+)?)$!', $host, $matches ) ) {
                                $host = '//[' . $matches[1] . ']' . $matches[2];
                        }