diff options
author | Joas Schilling <nickvergessen@owncloud.com> | 2015-03-05 16:07:42 +0100 |
---|---|---|
committer | Joas Schilling <nickvergessen@owncloud.com> | 2015-03-09 11:25:18 +0100 |
commit | a12e16e9850fe87d2ee7d4be229b38785eaf5367 (patch) | |
tree | 65446b0f47278598d1cd94db432a25b24e05b360 /lib/private/preview.php | |
parent | 9f5433c0c3050c61e3e1cc2b7a71352dfe7f9250 (diff) | |
download | nextcloud-server-a12e16e9850fe87d2ee7d4be229b38785eaf5367.tar.gz nextcloud-server-a12e16e9850fe87d2ee7d4be229b38785eaf5367.zip |
Check whether the file id is valid, before using it to delete the previews
Diffstat (limited to 'lib/private/preview.php')
-rw-r--r-- | lib/private/preview.php | 19 |
1 files changed, 10 insertions, 9 deletions
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); + } } } } |