X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Flib%2FDrupal%2FCore%2FRouting%2FUrlGenerator.php;h=853a5f7b4e1babda77e423a4777e49b433b12f2d;hb=refs%2Fheads%2Fd864;hp=92326ec42a3f3d29d9fbf8a0525906e29418731c;hpb=9917807b03b64faf00f6a1f29dcb6eafc454efa5;p=yaffs-website diff --git a/web/core/lib/Drupal/Core/Routing/UrlGenerator.php b/web/core/lib/Drupal/Core/Routing/UrlGenerator.php index 92326ec42..853a5f7b4 100644 --- a/web/core/lib/Drupal/Core/Routing/UrlGenerator.php +++ b/web/core/lib/Drupal/Core/Routing/UrlGenerator.php @@ -148,7 +148,7 @@ class UrlGenerator implements UrlGeneratorInterface { * examined for changes in new Symfony releases. * * @param array $variables - * The variables form the compiled route, corresponding to slugs in the + * The variables from the compiled route, corresponding to slugs in the * route path. * @param array $defaults * The defaults from the route. @@ -297,6 +297,11 @@ class UrlGenerator implements UrlGeneratorInterface { if ($options['path_processing']) { $path = $this->processPath($path, $options, $generated_url); } + // Ensure the resulting path has at most one leading slash, to prevent it + // becoming an external URL without a protocol like //example.com. + if (strpos($path, '//') === 0) { + $path = '/' . ltrim($path, '/'); + } // The contexts base URL is already encoded // (see Symfony\Component\HttpFoundation\Request). $path = str_replace($this->decodedChars[0], $this->decodedChars[1], rawurlencode($path));