From 94a90d426c6c8c04e692398016a9e6bf53164713 Mon Sep 17 00:00:00 2001 From: Oliver Hader <oliver@typo3.org> Date: Sat, 14 Jan 2023 21:35:52 +0100 Subject: [PATCH] [BUGFIX] Enforce processing images stored in typo3temp When rendering preview images of online-media assets (YouTube, etc.), the corresponding image is retrieved from the remote host and stored in typo3temp. In case configured dimension and file extension of the target file are not different, the image won't be processed and thus not stored in a public FAL storage. Resolves: #99550 Releases: main, 11.5 Change-Id: Ib2e28b2e5d2bc4ea96207917ca8f26f407f53856 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/77543 Reviewed-by: Oliver Hader <oliver.hader@typo3.org> Tested-by: core-ci <typo3@b13.com> Tested-by: Oliver Hader <oliver.hader@typo3.org> --- .../Resource/Processing/LocalCropScaleMaskHelper.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/typo3/sysext/core/Classes/Resource/Processing/LocalCropScaleMaskHelper.php b/typo3/sysext/core/Classes/Resource/Processing/LocalCropScaleMaskHelper.php index 6cfdd5cf1534..9f2edddfca3a 100644 --- a/typo3/sysext/core/Classes/Resource/Processing/LocalCropScaleMaskHelper.php +++ b/typo3/sysext/core/Classes/Resource/Processing/LocalCropScaleMaskHelper.php @@ -122,7 +122,9 @@ class LocalCropScaleMaskHelper $configuration['height'] ?? '', $configuration['additionalParameters'], $configuration['frame'] ?? '', - $options + $options, + // in case file is in `/typo3temp/`, it must create a result + $this->isTemporaryFile($originalFileName) ); } else { $targetFileName = $this->getFilenameForImageCropScaleMask($task); @@ -283,4 +285,9 @@ class LocalCropScaleMaskHelper } return $parameters; } + + protected function isTemporaryFile(string $filePath): bool + { + return str_starts_with($filePath, Environment::getPublicPath() . '/typo3temp/'); + } } -- GitLab