diff options
author | Georg Ehrke <georg@ownCloud.com> | 2013-05-30 10:44:23 +0200 |
---|---|---|
committer | Georg Ehrke <georg@ownCloud.com> | 2013-05-30 10:44:27 +0200 |
commit | 5433a5046194a5c618c4cfdd253317d8f0eac69f (patch) | |
tree | 4f68b1e1bbabb913588d812fcbc3647ca482c9c2 | |
parent | d8008ae421850c825ae692960a26eb25ca48b986 (diff) | |
download | nextcloud-server-5433a5046194a5c618c4cfdd253317d8f0eac69f.tar.gz nextcloud-server-5433a5046194a5c618c4cfdd253317d8f0eac69f.zip |
validate size of file
-rwxr-xr-x | lib/preview.php | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/preview.php b/lib/preview.php index 1150681e64f..be3abc2cd47 100755 --- a/lib/preview.php +++ b/lib/preview.php @@ -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; |