diff options
author | Lukas Reschke <lukas@statuscode.ch> | 2016-07-21 01:43:32 +0200 |
---|---|---|
committer | Lukas Reschke <lukas@statuscode.ch> | 2016-07-21 01:43:32 +0200 |
commit | 19f770d0db516617fa6b533661c168cda95f5e14 (patch) | |
tree | 62bd3545adbc75cda0ecf6d6633ad7abf3987ae3 | |
parent | 38b2239b0d1f7380c4293d910f1ed362ea386479 (diff) | |
download | nextcloud-server-19f770d0db516617fa6b533661c168cda95f5e14.tar.gz nextcloud-server-19f770d0db516617fa6b533661c168cda95f5e14.zip |
Port https://github.com/nextcloud/server/commit/2d373416d8e54a7de84879a365c372a85104c6df to master
-rw-r--r-- | lib/private/IntegrityCheck/Checker.php | 13 | ||||
-rw-r--r-- | lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php | 7 |
2 files changed, 19 insertions, 1 deletions
diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php index 2af402196ae..d087720c11a 100644 --- a/lib/private/IntegrityCheck/Checker.php +++ b/lib/private/IntegrityCheck/Checker.php @@ -354,6 +354,19 @@ class Checker { throw new InvalidSignatureException('Signature could not get verified.'); } + // Fixes for the updater as shipped with ownCloud 9.0.x: The updater is + // replaced after the code integrity check is performed. + // + // Due to this reason we exclude the whole updater/ folder from the code + // integrity check. + if($basePath === $this->environmentHelper->getServerRoot()) { + foreach($expectedHashes as $fileName => $hash) { + if(strpos($fileName, 'updater/') === 0) { + unset($expectedHashes[$fileName]); + } + } + } + // Compare the list of files which are not identical $currentInstanceHashes = $this->generateHashes($this->getFolderIterator($basePath), $basePath); $differencesA = array_diff($expectedHashes, $currentInstanceHashes); diff --git a/lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php b/lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php index c8db8022112..3885f3dfa6a 100644 --- a/lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php +++ b/lib/private/IntegrityCheck/Iterator/ExcludeFoldersByPathFilterIterator.php @@ -29,7 +29,7 @@ class ExcludeFoldersByPathFilterIterator extends \RecursiveFilterIterator { parent::__construct($iterator); $appFolders = \OC::$APPSROOTS; - foreach($appFolders as $key => $appFolder) { + foreach($appFolders as $key => $appFolder) {c $appFolders[$key] = rtrim($appFolder['path'], '/'); } @@ -40,6 +40,11 @@ class ExcludeFoldersByPathFilterIterator extends \RecursiveFilterIterator { rtrim($root . '/apps', '/'), rtrim($root . '/assets', '/'), rtrim($root . '/lost+found', '/'), + // Ignore folders generated by updater since the updater is replaced + // after the integrity check is run. + // See https://github.com/owncloud/updater/issues/318#issuecomment-212497846 + rtrim($root . '/updater', '/'), + rtrim($root . '/_oc_upgrade', '/'), ]; $customDataDir = \OC::$server->getConfig()->getSystemValue('datadirectory', ''); if($customDataDir !== '') { |