From b615b0ae579d445eb7cd674638f65eabbd97a20f Mon Sep 17 00:00:00 2001
From: Michael Oehlhof <typo3@oehlhof.de>
Date: Sun, 28 Jan 2018 17:26:30 +0100
Subject: [PATCH] [BUGFIX] EXT:filelist Fixed exception when the base path does
 not exists

Resolves: #79785
Releases: master, 8.7
Change-Id: I50cf03273747b1fa32a1f8e4aac993a3fbc7b7f0
Reviewed-on: https://review.typo3.org/55476
Tested-by: TYPO3com <no-reply@typo3.com>
Tested-by: Jan Stockfisch <jan.stockfisch@googlemail.com>
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Reviewed-by: Timo Pfeffer <pfeffer.timo+typo3@gmail.com>
Reviewed-by: Mathias Schreiber <mathias.schreiber@typo3.com>
Tested-by: Mathias Schreiber <mathias.schreiber@typo3.com>
Reviewed-by: Joerg Boesche <typo3@joergboesche.de>
Reviewed-by: Tobi Kretschmann <tobi@tobishome.de>
Tested-by: Tobi Kretschmann <tobi@tobishome.de>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
---
 .../core/Classes/Resource/ResourceStorage.php | 23 +++++++++++++------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/typo3/sysext/core/Classes/Resource/ResourceStorage.php b/typo3/sysext/core/Classes/Resource/ResourceStorage.php
index def4d7eeb770..ff3c1aaaf60e 100644
--- a/typo3/sysext/core/Classes/Resource/ResourceStorage.php
+++ b/typo3/sysext/core/Classes/Resource/ResourceStorage.php
@@ -2844,13 +2844,22 @@ class ResourceStorage implements ResourceStorageInterface
                 } else {
                     if ($this->driver->folderExists($processingFolder) === false) {
                         $rootFolder = $this->getRootLevelFolder(false);
-                        $currentEvaluatePermissions = $this->evaluatePermissions;
-                        $this->evaluatePermissions = false;
-                        $this->processingFolder = $this->createFolder(
-                            $processingFolder,
-                            $rootFolder
-                        );
-                        $this->evaluatePermissions = $currentEvaluatePermissions;
+                        try {
+                            $currentEvaluatePermissions = $this->evaluatePermissions;
+                            $this->evaluatePermissions = false;
+                            $this->processingFolder = $this->createFolder(
+                                $processingFolder,
+                                $rootFolder
+                            );
+                            $this->evaluatePermissions = $currentEvaluatePermissions;
+                        } catch (\InvalidArgumentException $e) {
+                            $this->processingFolder = GeneralUtility::makeInstance(
+                                InaccessibleFolder::class,
+                                $this,
+                                $processingFolder,
+                                $processingFolder
+                            );
+                        }
                     } else {
                         $data = $this->driver->getFolderInfoByIdentifier($processingFolder);
                         $this->processingFolder = $this->getResourceFactoryInstance()->createFolderObject($this, $data['identifier'], $data['name']);
-- 
GitLab