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