From f43833749301a8c8ea605d08897ffbc422c8d560 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Thu, 13 Mar 2014 12:32:02 +0100 Subject: [PATCH] improve validation of getFileInfo in \OC\Preview --- lib/private/preview.php | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/lib/private/preview.php b/lib/private/preview.php index 8cef1ade01b..1f797c7e994 100755 --- a/lib/private/preview.php +++ b/lib/private/preview.php @@ -189,7 +189,10 @@ class Preview { $this->file = $file; $this->info = null; if ($file !== '') { - $this->mimetype = $this->getFileInfo()->getMimetype(); + $this->getFileInfo(); + if($this->info !== null && $this->info !== false) { + $this->mimetype = $this->info->getMimetype(); + } } return $this; } @@ -282,10 +285,13 @@ class Preview { $file = $this->getFile(); $fileInfo = $this->getFileInfo($file); - $fileId = $fileInfo->getId(); + if($fileInfo !== null && $fileInfo !== false) { + $fileId = $fileInfo->getId(); - $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/' . $this->getMaxX() . '-' . $this->getMaxY() . '.png'; - return $this->userView->unlink($previewPath); + $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/' . $this->getMaxX() . '-' . $this->getMaxY() . '.png'; + return $this->userView->unlink($previewPath); + } + return false; } /** @@ -296,11 +302,14 @@ class Preview { $file = $this->getFile(); $fileInfo = $this->getFileInfo($file); - $fileId = $fileInfo->getId(); + if($fileInfo !== null && $fileInfo !== false) { + $fileId = $fileInfo->getId(); - $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; - $this->userView->deleteAll($previewPath); - return $this->userView->rmdir($previewPath); + $previewPath = $this->getThumbnailsFolder() . '/' . $fileId . '/'; + $this->userView->deleteAll($previewPath); + return $this->userView->rmdir($previewPath); + } + return false; } /** @@ -406,6 +415,9 @@ class Preview { $scalingUp = $this->getScalingUp(); $fileInfo = $this->getFileInfo($file); + if($fileInfo === null || $fileInfo === false) { + return new \OC_Image(); + } $fileId = $fileInfo->getId(); $cached = $this->isCached(); -- 2.39.5