From 4ee6ff9df27cf4c533d4a5f66c2ea439bb663b0c Mon Sep 17 00:00:00 2001 From: Oliver Bartsch <bo@cedev.de> Date: Fri, 22 Sep 2023 15:13:22 +0200 Subject: [PATCH] [BUGFIX] Properly check instance of folder parameter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will prevent type errors in case given folder parameter is set but not a Folder object. Resolves: #102016 Related: #102014 Releases: main, 12.4 Change-Id: I828cab2ab1a5a649ba6fdf08375453b4c3382432 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/81179 Reviewed-by: Stefan Bürk <stefan@buerk.tech> Tested-by: Oliver Bartsch <bo@cedev.de> Reviewed-by: Jochen Roth <rothjochen@gmail.com> Tested-by: Jochen Roth <rothjochen@gmail.com> Tested-by: Stefan Bürk <stefan@buerk.tech> Tested-by: core-ci <typo3@b13.com> Reviewed-by: Oliver Bartsch <bo@cedev.de> --- typo3/sysext/core/Classes/LinkHandling/FolderLinkHandler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/typo3/sysext/core/Classes/LinkHandling/FolderLinkHandler.php b/typo3/sysext/core/Classes/LinkHandling/FolderLinkHandler.php index 232c0c7f6cee..dc7936b59c9b 100644 --- a/typo3/sysext/core/Classes/LinkHandling/FolderLinkHandler.php +++ b/typo3/sysext/core/Classes/LinkHandling/FolderLinkHandler.php @@ -19,6 +19,7 @@ namespace TYPO3\CMS\Core\LinkHandling; use TYPO3\CMS\Core\Resource\Exception\FolderDoesNotExistException; use TYPO3\CMS\Core\Resource\Exception\InsufficientFolderAccessPermissionsException; +use TYPO3\CMS\Core\Resource\Folder; use TYPO3\CMS\Core\Resource\ResourceFactory; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -46,10 +47,9 @@ class FolderLinkHandler implements LinkHandlingInterface */ public function asString(array $parameters): string { - if (!isset($parameters['folder'])) { + if (!($parameters['folder'] ?? null) instanceof Folder) { return ''; } - // the magic with prepending slash if it is missing will not work on windows return $this->baseUrn . '?storage=' . $parameters['folder']->getStorage()->getUid() . '&identifier=' . urlencode('/' . ltrim($parameters['folder']->getIdentifier(), '/')); -- GitLab