From a12e16e9850fe87d2ee7d4be229b38785eaf5367 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 5 Mar 2015 16:07:42 +0100 Subject: Check whether the file id is valid, before using it to delete the previews --- lib/private/preview.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'lib') diff --git a/lib/private/preview.php b/lib/private/preview.php index c7ef00652aa..f45cc0858c7 100644 --- a/lib/private/preview.php +++ b/lib/private/preview.php @@ -14,6 +14,7 @@ namespace OC; use OC\Preview\Provider; +use OCP\Files\FileInfo; use OCP\Files\NotFoundException; class Preview { @@ -327,21 +328,21 @@ class Preview { * deletes all previews of a file */ public function deleteAllPreviews() { - $file = $this->getFile(); - - $fileInfo = $this->getFileInfo($file); - $toDelete = $this->getChildren(); - $toDelete[] = $fileInfo; + $toDelete[] = $this->getFileInfo(); foreach ($toDelete as $delete) { - if ($delete !== null && $delete !== false) { + if ($delete instanceof FileInfo) { /** @var \OCP\Files\FileInfo $delete */ $fileId = $delete->getId(); - $previewPath = $this->getPreviewPath($fileId); - $this->userView->deleteAll($previewPath); - $this->userView->rmdir($previewPath); + // getId() might return null, e.g. when the file is a + // .ocTransferId*.part file from chunked file upload. + if (!empty($fileId)) { + $previewPath = $this->getPreviewPath($fileId); + $this->userView->deleteAll($previewPath); + $this->userView->rmdir($previewPath); + } } } } -- cgit v1.2.3