From b5c54bccb94624e1995d0b2edf002639b6940cb6 Mon Sep 17 00:00:00 2001 From: Oliver Bartsch <bo@cedev.de> Date: Mon, 11 Dec 2023 11:15:09 +0100 Subject: [PATCH] [BUGFIX] Prevent TypeError in FileSearchDemand Since `QueryHelper::parseOrderBy()` might return NULL as value for fieldname and direction, we now check those values properly to prevent any TypeErrors using the type-hinted `addOrdering()` method. Resolves: #102649 Releases: main, 12.4 Change-Id: Ie117e7fd0593392e843aaca5c1e9c254c4de42d1 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82129 Reviewed-by: Oliver Bartsch <bo@cedev.de> Tested-by: Oliver Bartsch <bo@cedev.de> Tested-by: core-ci <typo3@b13.com> --- .../sysext/core/Classes/Resource/Search/FileSearchQuery.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/typo3/sysext/core/Classes/Resource/Search/FileSearchQuery.php b/typo3/sysext/core/Classes/Resource/Search/FileSearchQuery.php index 8fa32bcae7dd..3cc31173d635 100644 --- a/typo3/sysext/core/Classes/Resource/Search/FileSearchQuery.php +++ b/typo3/sysext/core/Classes/Resource/Search/FileSearchQuery.php @@ -94,7 +94,10 @@ class FileSearchQuery if ($searchDemand->getOrderings() === null) { $orderBy = ($GLOBALS['TCA'][self::FILES_TABLE]['ctrl']['sortby'] ?? '') ?: ($GLOBALS['TCA'][self::FILES_TABLE]['ctrl']['default_sortby'] ?? ''); foreach (QueryHelper::parseOrderBy((string)$orderBy) as [$fieldName, $order]) { - $searchDemand = $searchDemand->addOrdering(self::FILES_TABLE, $fieldName, $order); + if (is_string($fieldName) && $fieldName !== '') { + // Call add ordering only for valid field names + $searchDemand = $searchDemand->addOrdering(self::FILES_TABLE, $fieldName, $order ?? 'ASC'); + } } } foreach ($searchDemand->getOrderings() as [$tableName, $fieldName, $direction]) { -- GitLab