This commit is contained in:
Lukas Reschke 2016-07-21 01:43:32 +02:00
parent 38b2239b0d
commit 19f770d0db
No known key found for this signature in database
GPG Key ID: B9F6980CF6E759B1
2 changed files with 19 additions and 1 deletions

View File

@ -354,6 +354,19 @@ class Checker {
throw new InvalidSignatureException('Signature could not get verified.'); 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 // Compare the list of files which are not identical
$currentInstanceHashes = $this->generateHashes($this->getFolderIterator($basePath), $basePath); $currentInstanceHashes = $this->generateHashes($this->getFolderIterator($basePath), $basePath);
$differencesA = array_diff($expectedHashes, $currentInstanceHashes); $differencesA = array_diff($expectedHashes, $currentInstanceHashes);

View File

@ -29,7 +29,7 @@ class ExcludeFoldersByPathFilterIterator extends \RecursiveFilterIterator {
parent::__construct($iterator); parent::__construct($iterator);
$appFolders = \OC::$APPSROOTS; $appFolders = \OC::$APPSROOTS;
foreach($appFolders as $key => $appFolder) { foreach($appFolders as $key => $appFolder) {c
$appFolders[$key] = rtrim($appFolder['path'], '/'); $appFolders[$key] = rtrim($appFolder['path'], '/');
} }
@ -40,6 +40,11 @@ class ExcludeFoldersByPathFilterIterator extends \RecursiveFilterIterator {
rtrim($root . '/apps', '/'), rtrim($root . '/apps', '/'),
rtrim($root . '/assets', '/'), rtrim($root . '/assets', '/'),
rtrim($root . '/lost+found', '/'), 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', ''); $customDataDir = \OC::$server->getConfig()->getSystemValue('datadirectory', '');
if($customDataDir !== '') { if($customDataDir !== '') {