[BUGFIX] Prevent fatal when importing a t3d file without fal information 99/31799/2
authorSascha Egerer <sascha.egerer@dkd.de>
Thu, 24 Jul 2014 15:44:16 +0000 (17:44 +0200)
committerStefan Neufeind <typo3.neufeind@speedpartner.de>
Sun, 21 Sep 2014 15:40:58 +0000 (17:40 +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/31799
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
typo3/sysext/impexp/Classes/ImportExport.php

index b2e44df..adf911d 100644 (file)
@@ -3030,7 +3030,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
@@ -3039,6 +3039,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] === '') {