From 60b87b18b7ef15b49c121ad9bb70ff73e5339585 Mon Sep 17 00:00:00 2001 From: Oliver Bartsch <bo@cedev.de> Date: Thu, 26 Jan 2023 16:17:53 +0100 Subject: [PATCH] [BUGFIX] Prevent possible null pointer exception in data processors The method `getContentObject()` might return null. This is now properly handled in the MenuProcessor and LanguageMenuProcessor. Resolves: #99722 Releases: main, 11.5 Change-Id: Iebaa2324c59032bd10610c2a63156168777070db Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77614 Tested-by: Oliver Bartsch <bo@cedev.de> Tested-by: core-ci <typo3@b13.com> Reviewed-by: Nikita Hovratov <nikita.h@live.de> Tested-by: Nikita Hovratov <nikita.h@live.de> Reviewed-by: Oliver Bartsch <bo@cedev.de> --- .../Classes/DataProcessing/LanguageMenuProcessor.php | 6 +++--- .../frontend/Classes/DataProcessing/MenuProcessor.php | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/typo3/sysext/frontend/Classes/DataProcessing/LanguageMenuProcessor.php b/typo3/sysext/frontend/Classes/DataProcessing/LanguageMenuProcessor.php index 9896ed27b9d3..2249d75172e7 100644 --- a/typo3/sysext/frontend/Classes/DataProcessing/LanguageMenuProcessor.php +++ b/typo3/sysext/frontend/Classes/DataProcessing/LanguageMenuProcessor.php @@ -410,9 +410,9 @@ class LanguageMenuProcessor implements DataProcessorInterface $this->validateAndBuildConfiguration(); // Process Configuration - $menuContentObject = $cObj->getContentObject('HMENU'); - $renderedMenu = $menuContentObject->render($this->menuConfig); - if (!$renderedMenu) { + if (($menuContentObject = $cObj->getContentObject('HMENU')) === null + || !($renderedMenu = $menuContentObject->render($this->menuConfig)) + ) { return $processedData; } diff --git a/typo3/sysext/frontend/Classes/DataProcessing/MenuProcessor.php b/typo3/sysext/frontend/Classes/DataProcessing/MenuProcessor.php index 07329aee0530..917b8647e110 100644 --- a/typo3/sysext/frontend/Classes/DataProcessing/MenuProcessor.php +++ b/typo3/sysext/frontend/Classes/DataProcessing/MenuProcessor.php @@ -455,9 +455,9 @@ class MenuProcessor implements DataProcessorInterface $this->buildConfiguration(); // Process Configuration - $menuContentObject = $cObj->getContentObject('HMENU'); - $renderedMenu = $menuContentObject->render($this->menuConfig); - if (!$renderedMenu) { + if (($menuContentObject = $cObj->getContentObject('HMENU')) === null + || !($renderedMenu = $menuContentObject->render($this->menuConfig)) + ) { return $processedData; } -- GitLab