]> source.dussan.org Git - nextcloud-server.git/commitdiff
Verify whether type is correct
authorLukas Reschke <lukas@owncloud.com>
Thu, 8 Jan 2015 17:33:35 +0000 (18:33 +0100)
committerLukas Reschke <lukas@owncloud.com>
Thu, 8 Jan 2015 17:38:17 +0000 (18:38 +0100)
`$this->info` can very well contain an empty array or possibly other values. This means that when this code path is called a PHP Fatal error might get thrown which is not what we want.

core/ajax/preview.php
lib/private/preview.php

index 03dfb483062495871b562483473336d77821e04f..f7e24e0ec2818ae6d3e7756727ab6907d8798dba 100644 (file)
@@ -29,21 +29,17 @@ if ($maxX === 0 || $maxY === 0) {
        exit;
 }
 
-try {
-       $preview = new \OC\Preview(\OC_User::getUser(), 'files');
-       $info = \OC\Files\Filesystem::getFileInfo($file);
-       if (!$always and !$preview->isAvailable($info)) {
-               \OC_Response::setStatus(404);
-       } else {
-               $preview->setFile($file);
-               $preview->setMaxX($maxX);
-               $preview->setMaxY($maxY);
-               $preview->setScalingUp($scalingUp);
-               $preview->setKeepAspect($keepAspect);
-               $preview->showPreview();
-       }
+$preview = new \OC\Preview(\OC_User::getUser(), 'files');
 
-} catch (\Exception $e) {
-       \OC_Response::setStatus(500);
-       \OC_Log::write('core', $e->getmessage(), \OC_Log::DEBUG);
+$info = \OC\Files\Filesystem::getFileInfo($file);
+
+if (!$info instanceof OCP\Files\FileInfo || !$always && !$preview->isAvailable($info)) {
+       \OC_Response::setStatus(404);
+} else {
+       $preview->setFile($file);
+       $preview->setMaxX($maxX);
+       $preview->setMaxY($maxY);
+       $preview->setScalingUp($scalingUp);
+       $preview->setKeepAspect($keepAspect);
+       $preview->showPreview();
 }
index a586c94fd11c59ebe6bb77c18a10290b2aa58cc7..c7ef00652aa19fb9b095ab8f15654dd7243d43e3 100644 (file)
@@ -200,14 +200,15 @@ class Preview {
        /**
         * set the path of the file you want a thumbnail from
         * @param string $file
-        * @return \OC\Preview $this
+        * @return $this
         */
        public function setFile($file) {
                $this->file = $file;
                $this->info = null;
+
                if ($file !== '') {
                        $this->getFileInfo();
-                       if($this->info !== null && $this->info !== false) {
+                       if($this->info instanceof \OCP\Files\FileInfo) {
                                $this->mimeType = $this->info->getMimetype();
                        }
                }