[BUGFIX] Prevent fatal when importing a t3d file without fal information 67/31767/3
authorSascha Egerer <sascha.egerer@dkd.de>
Thu, 24 Jul 2014 15:44:16 +0000 (17:44 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Fri, 25 Jul 2014 10:02:15 +0000 (12:02 +0200)
Currently the importer expects that an imported t3d file contains
data for fal. This is not the case if the t3d file comes from
a TYPO3 4.5 installation.

As a result a fatal error is caused because fread is called with
a length of 0.

Resolves: #60540
Releases: 6.3, 6.2
Change-Id: Ib112200c2b6cba0252440cd370d57a6ccd048bf2
Reviewed-on: http://review.typo3.org/31767
Reviewed-by: Susanne Moog <typo3@susannemoog.de>
Tested-by: Susanne Moog <typo3@susannemoog.de>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/impexp/Classes/ImportExport.php

index f4cc3f2..35efc57 100644 (file)
@@ -3133,7 +3133,7 @@ class ImportExport {
         * @param pointer $fd File pointer
         * @param boolean $unserialize If set, the returned content is unserialized into an array, otherwise you get the raw string
         * @param string $name For error messages this indicates the section of the problem.
-        * @return string Data string
+        * @return string|NULL Data string or NULL in case of an error
         * @access private
         * @see loadFile()
         * @todo Define visibility
@@ -3142,6 +3142,10 @@ class ImportExport {
                $initStrLen = 32 + 1 + 1 + 1 + 10 + 1;
                // Getting header data
                $initStr = fread($fd, $initStrLen);
+               if (empty($initStr)) {
+                       $this->error('File does not contain data for "' . $name . '"');
+                       return NULL;
+               }
                $initStrDat = explode(':', $initStr);
                if (strstr($initStrDat[0], 'Warning') == FALSE) {
                        if ((string)$initStrDat[3] === '') {