From c75b26c9d3005f25fc3dbc313cfd3780e14cb5a0 Mon Sep 17 00:00:00 2001 From: Wouter Wolters <typo3@wouterwolters.nl> Date: Wed, 11 May 2016 16:14:53 +0200 Subject: [PATCH] [BUGFIX] Catch exceptions while dumping a file While dumping a file in the frontend no exceptions are caught. When a exception happens a 500 HTTP status is thrown. Catch all exceptions to return the correct 404 HTTP status. Releases: master,7.6,6.2 Resolves: #76153 Change-Id: Ice7097b6a41432ec580f99185d352307c5f55394 Reviewed-on: https://review.typo3.org/48080 Reviewed-by: Markus Klein <markus.klein@typo3.org> Reviewed-by: Andreas Fernandez <typo3@scripting-base.de> Tested-by: Markus Klein <markus.klein@typo3.org> Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de> Reviewed-by: Frans Saris <franssaris@gmail.com> Tested-by: Frans Saris <franssaris@gmail.com> --- .../core/Classes/Controller/FileDumpController.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/typo3/sysext/core/Classes/Controller/FileDumpController.php b/typo3/sysext/core/Classes/Controller/FileDumpController.php index 7dd268afa932..b8b5a78478e9 100644 --- a/typo3/sysext/core/Classes/Controller/FileDumpController.php +++ b/typo3/sysext/core/Classes/Controller/FileDumpController.php @@ -57,13 +57,17 @@ class FileDumpController if (GeneralUtility::hmac(implode('|', $parameters), 'resourceStorageDumpFile') === $this->getGetOrPost($request, 'token')) { if (isset($parameters['f'])) { - $file = ResourceFactory::getInstance()->getFileObject($parameters['f']); - if ($file->isDeleted() || $file->isMissing()) { + try { + $file = ResourceFactory::getInstance()->getFileObject($parameters['f']); + if ($file->isDeleted() || $file->isMissing()) { + $file = null; + } + } catch (\Exception $e) { $file = null; } } else { $file = GeneralUtility::makeInstance(ProcessedFileRepository::class)->findByUid($parameters['p']); - if ($file->isDeleted()) { + if (!$file || $file->isDeleted()) { $file = null; } } -- GitLab