From 304c9fbc3b5c34762e1e399eeaa33cb136ff73a1 Mon Sep 17 00:00:00 2001 From: Git'Fellow <12234510+solracsf@users.noreply.github.com> Date: Sun, 8 Mar 2026 18:48:13 +0100 Subject: [PATCH] fix(preview): Validate preview MIME type Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com> --- lib/private/Preview/Generator.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index e68120338ef0b..422b18e346e05 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -543,6 +543,10 @@ private function generatePreview( self::unguardWithSemaphore($sem); } + if (!$preview->valid() || $preview->dataMimeType() === null) { + throw new \InvalidArgumentException('Preview generation failed: invalid or null MIME type'); + } + $previewEntry = new Preview(); $previewEntry->generateId(); $previewEntry->setFileId($file->getId()); @@ -557,12 +561,13 @@ private function generatePreview( $previewEntry->setMimeType($preview->dataMimeType()); $previewEntry->setEtag($file->getEtag()); $previewEntry->setMtime((new \DateTime())->getTimestamp()); + if ($cacheResult) { $previewEntry = $this->savePreview($previewEntry, $preview); return new PreviewFile($previewEntry, $this->storageFactory, $this->previewMapper); - } else { - return new InMemoryFile($previewEntry->getName(), $preview->data()); } + + return new InMemoryFile($previewEntry->getName(), $preview->data()); } /**