aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private')
-rw-r--r--lib/private/Files/Cache/Scanner.php8
-rw-r--r--lib/private/Files/Storage/Wrapper/Encryption.php5
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/private/Files/Cache/Scanner.php b/lib/private/Files/Cache/Scanner.php
index 801c5239754..8d17943e83c 100644
--- a/lib/private/Files/Cache/Scanner.php
+++ b/lib/private/Files/Cache/Scanner.php
@@ -208,9 +208,17 @@ class Scanner extends BasicEmitter implements IScanner {
$data['etag'] = $etag;
}
}
+
+ // we only updated unencrypted_size if it's already set
+ if ($cacheData['unencrypted_size'] === 0) {
+ unset($data['unencrypted_size']);
+ }
+
// Only update metadata that has changed
$newData = array_diff_assoc($data, $cacheData->getData());
} else {
+ // we only updated unencrypted_size if it's already set
+ unset($data['unencrypted_size']);
$newData = $data;
$fileId = -1;
}
diff --git a/lib/private/Files/Storage/Wrapper/Encryption.php b/lib/private/Files/Storage/Wrapper/Encryption.php
index 4d860e623e0..e825d6de118 100644
--- a/lib/private/Files/Storage/Wrapper/Encryption.php
+++ b/lib/private/Files/Storage/Wrapper/Encryption.php
@@ -180,10 +180,12 @@ class Encryption extends Wrapper {
if (isset($this->unencryptedSize[$fullPath])) {
$data['encrypted'] = true;
$data['size'] = $this->unencryptedSize[$fullPath];
+ $data['unencrypted_size'] = $data['size'];
} else {
if (isset($info['fileid']) && $info['encrypted']) {
$data['size'] = $this->verifyUnencryptedSize($path, $info->getUnencryptedSize());
$data['encrypted'] = true;
+ $data['unencrypted_size'] = $data['size'];
}
}
@@ -494,7 +496,8 @@ class Encryption extends Wrapper {
$result = $unencryptedSize;
if ($unencryptedSize < 0 ||
- ($size > 0 && $unencryptedSize === $size)
+ ($size > 0 && $unencryptedSize === $size) ||
+ $unencryptedSize > $size
) {
// check if we already calculate the unencrypted size for the
// given path to avoid recursions