Merge pull request #23422 from nextcloud/backport/23295/stable20

[stable20] Fix undefined index and consequential damages in versions code
This commit is contained in:
Morris Jobke 2020-10-19 10:12:49 +02:00 committed by GitHub
commit 3f180d2946
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 3 deletions

View File

@ -496,7 +496,7 @@ class Storage {
$expiration = self::getExpiration(); $expiration = self::getExpiration();
$threshold = $expiration->getMaxAgeAsTimestamp(); $threshold = $expiration->getMaxAgeAsTimestamp();
$versions = self::getAllVersions($uid); $versions = self::getAllVersions($uid);
if (!$threshold || !array_key_exists('all', $versions)) { if (!$threshold || empty($versions['all'])) {
return; return;
} }
@ -578,7 +578,10 @@ class Storage {
// newest version first // newest version first
krsort($versions); krsort($versions);
$result = []; $result = [
'all' => [],
'by_file' => [],
];
foreach ($versions as $key => $value) { foreach ($versions as $key => $value) {
$size = $view->filesize(self::VERSIONS_ROOT.'/'.$value['path'].'.v'.$value['timestamp']); $size = $view->filesize(self::VERSIONS_ROOT.'/'.$value['path'].'.v'.$value['timestamp']);
@ -775,7 +778,7 @@ class Storage {
// if still not enough free space we rearrange the versions from all files // if still not enough free space we rearrange the versions from all files
if ($availableSpace <= 0) { if ($availableSpace <= 0) {
$result = Storage::getAllVersions($uid); $result = self::getAllVersions($uid);
$allVersions = $result['all']; $allVersions = $result['all'];
foreach ($result['by_file'] as $versions) { foreach ($result['by_file'] as $versions) {