summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-03-31 18:36:52 +0200
committerVincent Petry <pvince81@owncloud.com>2014-04-01 10:07:16 +0200
commitd6ce45fe61c05c0779cfaa3207a538a7a5b9a04c (patch)
treec5fbd10a2bf10b5867ae89d2b06f2ae6e9e05919 /lib
parentab696edba685cd6d2a64c2e48907f03197aae53f (diff)
downloadnextcloud-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.php7
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) {