diff options
author | Louis Chemineau <louis@chmn.me> | 2025-02-03 12:53:46 +0100 |
---|---|---|
committer | backportbot[bot] <backportbot[bot]@users.noreply.github.com> | 2025-02-26 13:24:01 +0000 |
commit | 7c2db9e34050452367a9f7b8932275297590d3d1 (patch) | |
tree | 38f9d00e2d38f163ae1dd4574cae062eef2f9c05 | |
parent | 6a8bccc023db58f151393463e9a8ef7d9fb45dd6 (diff) | |
download | nextcloud-server-backport/51050/stable29.tar.gz nextcloud-server-backport/51050/stable29.zip |
fix: Report duplicated extra files in integrity checkbackport/51050/stable29
The `array_diff` is not comparing the array keys. This means that an extra key with an expected hash will not be reported. Using `array_diff_assoc` will report such files.
For example, copying `status.php` to `status 2.php`, will only be reported with the new version.
Signed-off-by: Louis Chemineau <louis@chmn.me>
-rw-r--r-- | lib/private/IntegrityCheck/Checker.php | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php index b17e4b1c0bf..32749a2c5f1 100644 --- a/lib/private/IntegrityCheck/Checker.php +++ b/lib/private/IntegrityCheck/Checker.php @@ -356,8 +356,8 @@ class Checker { // Compare the list of files which are not identical $currentInstanceHashes = $this->generateHashes($this->getFolderIterator($basePath), $basePath); - $differencesA = array_diff($expectedHashes, $currentInstanceHashes); - $differencesB = array_diff($currentInstanceHashes, $expectedHashes); + $differencesA = array_diff_assoc($expectedHashes, $currentInstanceHashes); + $differencesB = array_diff_assoc($currentInstanceHashes, $expectedHashes); $differences = array_unique(array_merge($differencesA, $differencesB)); $differenceArray = []; foreach ($differences as $filename => $hash) { |