[BUGFIX] Fix runtime-error in traverseFlexFormXMLData 99/51399/4
authorThomas Hohn <thomas@hohn.dk>
Mon, 23 Jan 2017 12:08:34 +0000 (13:08 +0100)
committerMarkus Klein <markus.klein@typo3.org>
Mon, 20 Feb 2017 20:00:39 +0000 (21:00 +0100)
Fix that run-time error will be thrown if
$dataStructureArray['sheets'] is not an array.

Fixes: #79426
Releases: master
Change-Id: I9b7549a5b79d0d5b8b2e27df407879812c1aa491
Reviewed-on: https://review.typo3.org/51399
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
typo3/sysext/core/Classes/Configuration/FlexForm/FlexFormTools.php

index 88056cf..1399622 100644 (file)
@@ -777,6 +777,10 @@ class FlexFormTools
         if (!is_array($editData)) {
             return 'Parsing error: ' . $editData;
         }
+        // Check if $dataStructureArray['sheets'] is indeed an array before loop or it will crash with runtime error
+        if (!is_array($dataStructureArray['sheets'])) {
+            return 'Data Structure ERROR: sheets is defined but not an array for table ' . $table . (isset($row['uid']) ? ' and uid ' . $row['uid'] : '');
+        }
         // Traverse languages:
         foreach ($dataStructureArray['sheets'] as $sheetKey => $sheetData) {
             // Render sheet: