From 0c3581bb419717b52b23397c740fc8afbcb3e707 Mon Sep 17 00:00:00 2001 From: Thomas Pronold <tp@zotorn.de> Date: Tue, 21 Apr 2020 09:04:50 +0200 Subject: [PATCH] [BUGFIX] Fix wrongly used typecast in combination with ?? operator The 'else' part would never be returned in this cases. Used [a-zA-Z0-9]{3,}\)[^(]?\$.*\?\? to find the cases. Care, this brings up false positives as well. Resolves: #91154 Releases: master, 9.5 Change-Id: Ifdb0f75995543c3cc8abeb81aba52e935e9bf9a1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64270 Tested-by: TYPO3com <noreply@typo3.com> Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de> Tested-by: Susanne Moog <look@susi.dev> Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by: Susanne Moog <look@susi.dev> --- typo3/sysext/core/Classes/Mail/TransportFactory.php | 2 +- typo3/sysext/core/Classes/TypoScript/TemplateService.php | 2 +- .../Classes/EventListener/CheckBrokenRteLinkEventListener.php | 2 +- typo3/sysext/redirects/Classes/Repository/Demand.php | 2 +- typo3/sysext/setup/Classes/Controller/SetupModuleController.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/typo3/sysext/core/Classes/Mail/TransportFactory.php b/typo3/sysext/core/Classes/Mail/TransportFactory.php index 165fe1d3376b..a28f09073a23 100644 --- a/typo3/sysext/core/Classes/Mail/TransportFactory.php +++ b/typo3/sysext/core/Classes/Mail/TransportFactory.php @@ -69,7 +69,7 @@ class TransportFactory implements SingletonInterface, LoggerAwareInterface $host = $parts[0]; $port = $parts[1] ?? null; } else { - $host = (string)$mailSettings['transport_smtp_server'] ?? ''; + $host = (string)($mailSettings['transport_smtp_server'] ?? ''); $port = null; } diff --git a/typo3/sysext/core/Classes/TypoScript/TemplateService.php b/typo3/sysext/core/Classes/TypoScript/TemplateService.php index 64b3c587e6e9..94ffbd10733d 100644 --- a/typo3/sysext/core/Classes/TypoScript/TemplateService.php +++ b/typo3/sysext/core/Classes/TypoScript/TemplateService.php @@ -1217,7 +1217,7 @@ class TemplateService } else { $currentPage = end($this->absoluteRootLine); try { - $site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId((int)$currentPage['uid'] ?? 0); + $site = GeneralUtility::makeInstance(SiteFinder::class)->getSiteByPageId((int)($currentPage['uid'] ?? 0)); } catch (SiteNotFoundException $exception) { $site = null; } diff --git a/typo3/sysext/linkvalidator/Classes/EventListener/CheckBrokenRteLinkEventListener.php b/typo3/sysext/linkvalidator/Classes/EventListener/CheckBrokenRteLinkEventListener.php index e6aa587325ca..33e99f35078f 100644 --- a/typo3/sysext/linkvalidator/Classes/EventListener/CheckBrokenRteLinkEventListener.php +++ b/typo3/sysext/linkvalidator/Classes/EventListener/CheckBrokenRteLinkEventListener.php @@ -45,7 +45,7 @@ final class CheckBrokenRteLinkEventListener if ($event->getLinkType() !== LinkService::TYPE_URL) { return; } - $url = (string)$event->getLinkData()['url'] ?? ''; + $url = (string)($event->getLinkData()['url'] ?? ''); if (!empty($url)) { if ($this->brokenLinkRepository->isLinkTargetBrokenLink($url)) { $event->markAsBrokenLink('External link is broken'); diff --git a/typo3/sysext/redirects/Classes/Repository/Demand.php b/typo3/sysext/redirects/Classes/Repository/Demand.php index d92adc89e572..e2ffcb249a6b 100644 --- a/typo3/sysext/redirects/Classes/Repository/Demand.php +++ b/typo3/sysext/redirects/Classes/Repository/Demand.php @@ -87,7 +87,7 @@ class Demand } $sourceHost = $demand['source_host'] ?? ''; $sourcePath = $demand['source_path'] ?? ''; - $statusCode = (int)$demand['target_statuscode'] ?? 0; + $statusCode = (int)($demand['target_statuscode'] ?? 0); $target = $demand['target'] ?? ''; return new self($page, $sourceHost, $sourcePath, $target, $statusCode); } diff --git a/typo3/sysext/setup/Classes/Controller/SetupModuleController.php b/typo3/sysext/setup/Classes/Controller/SetupModuleController.php index a07ad4954e23..f3b24617ade2 100644 --- a/typo3/sysext/setup/Classes/Controller/SetupModuleController.php +++ b/typo3/sysext/setup/Classes/Controller/SetupModuleController.php @@ -194,7 +194,7 @@ class SetupModuleController $beUserId = $backendUser->user['uid']; $storeRec = []; $fieldList = $this->getFieldsFromShowItem(); - if (is_array($d) && $this->formProtection->validateToken((string)$postData['formToken'] ?? '', 'BE user setup', 'edit')) { + if (is_array($d) && $this->formProtection->validateToken((string)($postData['formToken'] ?? ''), 'BE user setup', 'edit')) { // UC hashed before applying changes $save_before = md5(serialize($backendUser->uc)); // PUT SETTINGS into the ->uc array: -- GitLab