]> source.dussan.org Git - nextcloud-server.git/commitdiff
validate size of file
authorGeorg Ehrke <georg@ownCloud.com>
Thu, 30 May 2013 08:44:23 +0000 (10:44 +0200)
committerGeorg Ehrke <georg@ownCloud.com>
Thu, 30 May 2013 08:44:27 +0000 (10:44 +0200)
lib/preview.php

index 1150681e64ff03244964939ee8cac50aeadd25db..be3abc2cd47ad6b278716e1ad1ded768a6711e9b 100755 (executable)
@@ -87,7 +87,15 @@ class Preview {
                                        $this->maxY = $this->max_y;
                                }
                        }
-       
+
+                       $fileinfo = $this->fileview->getFileInfo($this->file);
+                       if(array_key_exists('size', $fileinfo)){
+                               if((int) $fileinfo['size'] === 0){
+                                       \OC_Log::write('core', 'You can\'t generate a preview of a 0 byte file (' . $this->file . ')', \OC_Log::ERROR);
+                                       throw new \Exception('0 byte file given');      
+                               }
+                       }
+
                        //init providers
                        if(empty(self::$providers)) {
                                self::initProviders();
@@ -518,7 +526,7 @@ class Preview {
                        try{
                                $preview = new Preview(\OC_User::getUser(), 'files', $file,  $maxX, $maxY, $scalingup);
                                $preview->showPreview();
-                       }catch(Exception $e) {
+                       }catch(\Exception $e) {
                                \OC_Response::setStatus(404);
                                \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
                                exit;
@@ -574,7 +582,7 @@ class Preview {
                        try{
                                $preview = new Preview($userid, 'files/' . $path, $file, $maxX, $maxY, $scalingup);
                                $preview->showPreview();
-                       }catch(Exception $e) {
+                       }catch(\Exception $e) {
                                \OC_Response::setStatus(404);
                                \OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
                                exit;