summaryrefslogtreecommitdiffstats
path: root/lib/private/Preview/Generator.php
diff options
context:
space:
mode:
authorRoeland Jago Douma <roeland@famdouma.nl>2018-01-22 13:57:00 +0100
committerRoeland Jago Douma <roeland@famdouma.nl>2018-01-22 13:57:00 +0100
commit8703df323392f8aa11c1c232a04be49c44f090bf (patch)
tree8eddd6618b02ece30539a27d093317f42e329696 /lib/private/Preview/Generator.php
parent1194e4c2bd6da09c975935d9f139052cfff9091e (diff)
downloadnextcloud-server-8703df323392f8aa11c1c232a04be49c44f090bf.tar.gz
nextcloud-server-8703df323392f8aa11c1c232a04be49c44f090bf.zip
If the preview is size 0 it is invalid
* delete it * throw a NotFound Exception - This should a proper 404 to the user - Next time it is then regenerated Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'lib/private/Preview/Generator.php')
-rw-r--r--lib/private/Preview/Generator.php16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php
index 60b7536d074..08f6b604eca 100644
--- a/lib/private/Preview/Generator.php
+++ b/lib/private/Preview/Generator.php
@@ -110,6 +110,11 @@ class Generator {
// Get the max preview and infer the max preview sizes from that
$maxPreview = $this->getMaxPreview($previewFolder, $file, $mimeType);
+ if ($maxPreview->getSize() === 0) {
+ $maxPreview->delete();
+ throw new NotFoundException('Max preview size 0, invalid!');
+ }
+
list($maxWidth, $maxHeight) = $this->getPreviewSize($maxPreview);
// If both width and heigth are -1 we just want the max preview
@@ -129,15 +134,20 @@ class Generator {
// Try to get a cached preview. Else generate (and store) one
try {
try {
- $file = $this->getCachedPreview($previewFolder, $width, $height, $crop, $maxPreview->getMimeType());
+ $preview = $this->getCachedPreview($previewFolder, $width, $height, $crop, $maxPreview->getMimeType());
} catch (NotFoundException $e) {
- $file = $this->generatePreview($previewFolder, $maxPreview, $width, $height, $crop, $maxWidth, $maxHeight);
+ $preview = $this->generatePreview($previewFolder, $maxPreview, $width, $height, $crop, $maxWidth, $maxHeight);
}
} catch (\InvalidArgumentException $e) {
throw new NotFoundException();
}
- return $file;
+ if ($preview->getSize() === 0) {
+ $preview->delete();
+ throw new NotFoundException('Cached preview size 0, invalid!');
+ }
+
+ return $preview;
}
/**