diff options
author | j-ed <juergen@eisfair.org> | 2013-03-02 10:51:49 +0100 |
---|---|---|
committer | j-ed <juergen@eisfair.org> | 2013-03-02 10:51:49 +0100 |
commit | 07b956c22d8ba5a6ac94dc3047bde8ca7a91609f (patch) | |
tree | b1eed1f57bb938118bf837e61e0a6077485b000e /lib | |
parent | 1f9551a382f42243c9cfece684e1f14508b88c3c (diff) | |
download | nextcloud-server-07b956c22d8ba5a6ac94dc3047bde8ca7a91609f.tar.gz nextcloud-server-07b956c22d8ba5a6ac94dc3047bde8ca7a91609f.zip |
Update image.php
don't try to extract image infos from 0- or better less than 12 byte length files. See description of `exif_imagetype` function at
`http://php.net/manual/de/function.exif-imagetype.php`.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/image.php | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/image.php b/lib/image.php index 97b0231047b..c1b187608a6 100644 --- a/lib/image.php +++ b/lib/image.php @@ -35,7 +35,13 @@ class OC_Image { * @returns string The mime type if the it could be determined, otherwise an empty string. */ static public function getMimeTypeForFile($filepath) { - $imagetype = exif_imagetype($filepath); + // exif_imagetype throws "read error!" if file is less than 12 byte + if (filesize($filepath) > 11) { + $imagetype = exif_imagetype($filepath); + } + else { + $imagetype = false; + } return $imagetype ? image_type_to_mime_type($imagetype) : ''; } @@ -385,7 +391,8 @@ class OC_Image { * @returns An image resource or false on error */ public function loadFromFile($imagepath=false) { - if(!is_file($imagepath) || !file_exists($imagepath) || !is_readable($imagepath)) { + // exif_imagetype throws "read error!" if file is less than 12 byte + if(!is_file($imagepath) || !file_exists($imagepath) || filesize($imagepath) < 12 || !is_readable($imagepath)) { // Debug output disabled because this method is tried before loadFromBase64? OC_Log::write('core', 'OC_Image->loadFromFile, couldn\'t load: '.$imagepath, OC_Log::DEBUG); return false; |