summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorCôme Chilliet <come.chilliet@nextcloud.com>2022-08-02 12:47:26 +0200
committerCôme Chilliet <come.chilliet@nextcloud.com>2022-08-02 12:47:26 +0200
commitb20278f70834c8f9eee21ab967dd24e69591cd3c (patch)
tree1176e9a817f31184fd8458b7684324730671b55e /apps
parentbd467e5d6617f04f3ef4f45a0540915eb0976e46 (diff)
downloadnextcloud-server-b20278f70834c8f9eee21ab967dd24e69591cd3c.tar.gz
nextcloud-server-b20278f70834c8f9eee21ab967dd24e69591cd3c.zip
Fix encryption:fix-encrypted-version command when encrypted is set to 0
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Diffstat (limited to 'apps')
-rw-r--r--apps/encryption/lib/Command/FixEncryptedVersion.php16
1 files changed, 16 insertions, 0 deletions
diff --git a/apps/encryption/lib/Command/FixEncryptedVersion.php b/apps/encryption/lib/Command/FixEncryptedVersion.php
index b3c0d8c4d16..d4c5eddbfe5 100644
--- a/apps/encryption/lib/Command/FixEncryptedVersion.php
+++ b/apps/encryption/lib/Command/FixEncryptedVersion.php
@@ -175,6 +175,22 @@ class FixEncryptedVersion extends Command {
$handle = $this->view->fopen($path, 'rb');
if (\fread($handle, 9001) !== false) {
+ $fileInfo = $this->view->getFileInfo($path);
+ if (!$fileInfo) {
+ $output->writeln("<warning>File info not found for file: \"$path\"</warning>");
+ return true;
+ }
+ $encryptedVersion = $fileInfo->getEncryptedVersion();
+ $stat = $this->view->stat($path);
+ if (($encryptedVersion == 0) && isset($stat['hasHeader']) && ($stat['hasHeader'] == true)) {
+ // The file has encrypted to false but has an encryption header
+ if ($ignoreCorrectEncVersionCall === true) {
+ // Lets rectify the file by correcting encrypted version
+ $output->writeln("<info>Attempting to fix the path: \"$path\"</info>");
+ return $this->correctEncryptedVersion($path, $output);
+ }
+ return false;
+ }
$output->writeln("<info>The file \"$path\" is: OK</info>");
}