From cdd00bf803894848f93f7fc37f58e2ad0ce938e3 Mon Sep 17 00:00:00 2001 From: Louis Chemineau Date: Mon, 3 Feb 2025 12:53:46 +0100 Subject: fix: Report duplicated extra files in integrity check 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 --- lib/private/IntegrityCheck/Checker.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php index 3a24e8632de..361fe8e9b2d 100644 --- a/lib/private/IntegrityCheck/Checker.php +++ b/lib/private/IntegrityCheck/Checker.php @@ -335,8 +335,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) { -- cgit v1.2.3