From dead9a1eba5359fe0419ae3d820eaab6c20e94ab Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20E=C3=9Fl?= <indy.essl@gmail.com>
Date: Sat, 4 Apr 2020 22:32:19 +0200
Subject: [PATCH] [BUGFIX] Remove $scheme from
 LegacyLinkNotationConverter::resolve()

The code block using $scheme is never reached, because there is already
an elseif condition further above, that is true for all urls containing
":".

The last else block even states in the comment:
"special handling without a scheme"

Therefore the variable is removed to remove a bit of complexity from the
function.

Resolves: #90951
Releases: master, 9.5
Change-Id: I2bc9fe0c546cb946fc32789ee384c3c60ac7c1fa
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64077
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Benni Mack <benni@typo3.org>
Tested-by: Georg Ringer <georg.ringer@gmail.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Georg Ringer <georg.ringer@gmail.com>
---
 .../LinkHandling/LegacyLinkNotationConverter.php       | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php b/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php
index 959f117b4e2f..9bb4a541622a 100644
--- a/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php
+++ b/typo3/sysext/core/Classes/LinkHandling/LegacyLinkNotationConverter.php
@@ -67,8 +67,6 @@ class LegacyLinkNotationConverter
         }
 
         $result = [];
-        // Parse URL scheme
-        $scheme = parse_url($linkParameter, PHP_URL_SCHEME);
 
         // Resolve FAL-api "file:UID-of-sys_file-record" and "file:combined-identifier"
         if (stripos($linkParameter, 'file:') === 0) {
@@ -137,12 +135,8 @@ class LegacyLinkNotationConverter
             // url (external): If doubleSlash or if a '.' comes before a '/'.
             if (!$isIdOrAlias && $isLocalFile !== 1 && $urlChar && (!$containsSlash || $urlChar < $fileChar)) {
                 $result['type'] = LinkService::TYPE_URL;
-                if (!$scheme) {
-                    $result['url'] = 'http://' . $linkParameter;
-                } else {
-                    $result['url'] = $linkParameter;
-                }
-                // file (internal) or folder
+                $result['url'] = 'http://' . $linkParameter;
+            // file (internal) or folder
             } elseif ($containsSlash || $isLocalFile) {
                 $result = $this->getFileOrFolderObjectFromMixedIdentifier($linkParameter);
             } else {
-- 
GitLab