diff options
author | Morris Jobke <hey@morrisjobke.de> | 2015-03-11 18:14:36 +0300 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2015-03-11 18:14:36 +0300 |
commit | 9b573ee8c9496d2deca46999d60a74ddf7a8d7f7 (patch) | |
tree | d96e2db9fcabe1ca7335faeed7f31d8c6f6ca2c9 /lib | |
parent | 5d53314e8ffb237fa6394ffbc655abd19f154648 (diff) | |
parent | c100d90793235b00ed8a0a34fd3607d36a254715 (diff) |
Merge pull request #14760 from owncloud/backport-14713
Check whether the file id is valid, before using it to delete the previe...
Diffstat (limited to 'lib')
-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); + } } } } |