Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiam JACK <liamjack@users.noreply.github.com>2020-04-12 16:35:17 +0300
committerLiam JACK <liamjack@users.noreply.github.com>2020-04-12 16:35:17 +0300
commitb6c76f43a17822bc0d7eee0270e0c00bd6325865 (patch)
tree62a2e2cf7b6876d32cec37553f814a882b407b00 /apps/files_versions
parent89242142998475fa94f27f99b02c4429b0b9bffd (diff)
Fix #19066 - Array offset error due to empty file versions array
Signed-off-by: Liam JACK <liamjack@users.noreply.github.com>
Diffstat (limited to 'apps/files_versions')
-rw-r--r--apps/files_versions/lib/Storage.php5
-rw-r--r--apps/files_versions/tests/VersioningTest.php5
2 files changed, 10 insertions, 0 deletions
diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php
index cb5a02581b5..2b896a0cf67 100644
--- a/apps/files_versions/lib/Storage.php
+++ b/apps/files_versions/lib/Storage.php
@@ -641,6 +641,11 @@ class Storage {
}
$firstVersion = reset($versions);
+
+ if ($firstVersion === false) {
+ return [$toDelete, $size];
+ }
+
$firstKey = key($versions);
$prevTimestamp = $firstVersion['version'];
$nextVersion = $firstVersion['version'] - $step;
diff --git a/apps/files_versions/tests/VersioningTest.php b/apps/files_versions/tests/VersioningTest.php
index 26429574364..b6d317ea25e 100644
--- a/apps/files_versions/tests/VersioningTest.php
+++ b/apps/files_versions/tests/VersioningTest.php
@@ -274,6 +274,11 @@ class VersioningTest extends \Test\TestCase {
],
9 // size of all deleted files (every file has the size 1)
],
+ // fourth set of versions: empty (see issue #19066)
+ [
+ [],
+ 0
+ ]
];
}