From 95f8d6db49f880951857a19c2a93e2a7f59476cd Mon Sep 17 00:00:00 2001 From: Andreas Fernandez <a.fernandez@scripting-base.de> Date: Mon, 4 Jul 2022 22:30:48 +0200 Subject: [PATCH] [BUGFIX] Cast folder name in tree provider to string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The method FileStorageTreeProvider->getSubfoldersRecursively() iterates an array of subfolders and prepares folder information based on the iterated data. This functionality has a minor flaw, thanks to PHP, in case a folder is named with numbers only, PHP treats array indices as integer if they can be parsed as such, leading to TypeErrors as the method prepareFolderInformation() expects a nullable string. The passed subfolder name is now cast to string to solve this issue. Resolves: #97851 Releases: main, 11.5 Change-Id: I3357121c4892d6063b6714e4e7b436b3ebdd1802 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/75028 Tested-by: Simon Schaufelberger <simonschaufi+typo3@gmail.com> Tested-by: core-ci <typo3@b13.com> Tested-by: Nikita Hovratov <nikita.h@live.de> Tested-by: Stefan Bürk <stefan@buerk.tech> Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de> Reviewed-by: Simon Schaufelberger <simonschaufi+typo3@gmail.com> Reviewed-by: Nikita Hovratov <nikita.h@live.de> Reviewed-by: Stefan Bürk <stefan@buerk.tech> Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de> Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de> --- typo3/sysext/backend/Classes/Tree/FileStorageTreeProvider.php | 1 + 1 file changed, 1 insertion(+) diff --git a/typo3/sysext/backend/Classes/Tree/FileStorageTreeProvider.php b/typo3/sysext/backend/Classes/Tree/FileStorageTreeProvider.php index 86cc43a099eb..6a7a9dd09860 100644 --- a/typo3/sysext/backend/Classes/Tree/FileStorageTreeProvider.php +++ b/typo3/sysext/backend/Classes/Tree/FileStorageTreeProvider.php @@ -201,6 +201,7 @@ class FileStorageTreeProvider $subFolderCounter = 0; foreach ($subFolders as $subFolderName => $subFolder) { + $subFolderName = (string)$subFolderName; // Enforce string cast in case $subFolderName contains numeric chars only $expanded = $this->isExpanded($subFolder); if (!($subFolder instanceof InaccessibleFolder)) { $children = $subFolder->getSubfolders(); -- GitLab