diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-03-31 18:36:52 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-04-01 10:07:16 +0200 |
commit | d6ce45fe61c05c0779cfaa3207a538a7a5b9a04c (patch) | |
tree | c5fbd10a2bf10b5867ae89d2b06f2ae6e9e05919 /lib | |
parent | ab696edba685cd6d2a64c2e48907f03197aae53f (diff) | |
download | nextcloud-server-d6ce45fe61c05c0779cfaa3207a538a7a5b9a04c.tar.gz nextcloud-server-d6ce45fe61c05c0779cfaa3207a538a7a5b9a04c.zip |
Correctly read the full stream in file_get_contents
When using user-defined stream wrappers, PHP will
return a maximum of 8192 bytes even if more was
requested.
This fix uses stream_get_contents to make sure the full stream is read
and not only the first 8 KB.
Added unit test with a bigger test file to cover this case.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/files/storage/common.php | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php index 2b697141515..480cf6b5c77 100644 --- a/lib/private/files/storage/common.php +++ b/lib/private/files/storage/common.php @@ -118,11 +118,8 @@ abstract class Common implements \OC\Files\Storage\Storage { if (!$handle) { return false; } - $size = $this->filesize($path); - if ($size == 0) { - return ''; - } - return fread($handle, $size); + $data = stream_get_contents($handle); + return $data; } public function file_put_contents($path, $data) { |