From aa4d3f66efadf70396c0ab758da5d105bade36e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B4me=20Chilliet?= Date: Thu, 28 May 2026 11:09:06 +0200 Subject: [PATCH 1/2] fix: Fix explode calls for path parsing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Always pass a limit of 2 when using explode in this way avoids bugs when the path contains several times the delimiter by chance. Signed-off-by: Côme Chilliet --- index.php | 4 ++-- lib/Updater.php | 4 ++-- tests/checkSameCodeBase.php | 2 +- updater.phar | Bin 1325357 -> 1312642 bytes 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/index.php b/index.php index 2beb3fb2..107aed4f 100644 --- a/index.php +++ b/index.php @@ -508,7 +508,7 @@ public function createBackup(): void { } foreach ($this->getRecursiveDirectoryIterator($this->nextcloudDir, $excludedElements) as $absolutePath => $fileInfo) { - $relativePath = explode($this->nextcloudDir, $absolutePath)[1]; + $relativePath = explode($this->nextcloudDir, $absolutePath, 2)[1]; $relativeDirectory = dirname($relativePath); // Create folder if it doesn't exist @@ -1180,7 +1180,7 @@ private function moveWithExclusions(string $dataLocation, array $excludedElement } - $fileName = explode($dataLocation, $path)[1]; + $fileName = explode($dataLocation, $path, 2)[1]; if ($fileInfo->isFile()) { if (!file_exists($this->nextcloudDir . '/' . dirname($fileName))) { diff --git a/lib/Updater.php b/lib/Updater.php index 665b3a14..d5ac3d20 100644 --- a/lib/Updater.php +++ b/lib/Updater.php @@ -492,7 +492,7 @@ public function createBackup(): void { } foreach ($this->getRecursiveDirectoryIterator($this->nextcloudDir, $excludedElements) as $absolutePath => $fileInfo) { - $relativePath = explode($this->nextcloudDir, $absolutePath)[1]; + $relativePath = explode($this->nextcloudDir, $absolutePath, 2)[1]; $relativeDirectory = dirname($relativePath); // Create folder if it doesn't exist @@ -1164,7 +1164,7 @@ private function moveWithExclusions(string $dataLocation, array $excludedElement } - $fileName = explode($dataLocation, $path)[1]; + $fileName = explode($dataLocation, $path, 2)[1]; if ($fileInfo->isFile()) { if (!file_exists($this->nextcloudDir . '/' . dirname($fileName))) { diff --git a/tests/checkSameCodeBase.php b/tests/checkSameCodeBase.php index 0f87c3dd..703a800a 100644 --- a/tests/checkSameCodeBase.php +++ b/tests/checkSameCodeBase.php @@ -56,7 +56,7 @@ function findDiffPos($original, $copy) { * @var SplFileInfo $fileInfo */ foreach ($iterator as $path => $fileInfo) { - $fileName = explode($libDir, $path)[1]; + $fileName = explode($libDir, $path, 2)[1]; if (in_array($fileName, $excludedFiles, true)) { continue; diff --git a/updater.phar b/updater.phar index 625fae13cb82b6ff19f896a34fea56fc150323e4..8dcb8de586b98b7418595fec397488a30b207dce 100755 GIT binary patch delta 29259 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

SQvN}TFt<)fKf0{aaV)=!*@ZtK%>D{U0Z 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 Y^GB Date: Thu, 28 May 2026 11:37:48 +0200 Subject: [PATCH 2/2] fix: Add error handling and rebuild updater.phar with correct box version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Côme Chilliet --- index.php | 10 ++++++++-- lib/Updater.php | 10 ++++++++-- updater.phar | Bin 1312642 -> 1325622 bytes vendor/composer/installed.php | 4 ++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/index.php b/index.php index 107aed4f..1b993a25 100644 --- a/index.php +++ b/index.php @@ -508,7 +508,10 @@ public function createBackup(): void { } foreach ($this->getRecursiveDirectoryIterator($this->nextcloudDir, $excludedElements) as $absolutePath => $fileInfo) { - $relativePath = explode($this->nextcloudDir, $absolutePath, 2)[1]; + $relativePath = explode($this->nextcloudDir, $absolutePath, 2)[1] ?? null; + if ($relativePath === null) { + throw new \Exception($absolutePath . ' is not in ' . $this->nextcloudDir); + } $relativeDirectory = dirname($relativePath); // Create folder if it doesn't exist @@ -1180,7 +1183,10 @@ private function moveWithExclusions(string $dataLocation, array $excludedElement } - $fileName = explode($dataLocation, $path, 2)[1]; + $fileName = explode($dataLocation, $path, 2)[1] ?? null; + if ($fileName === null) { + throw new \Exception('Could not move ' . $path . ' as it’s not in ' . $dataLocation); + } if ($fileInfo->isFile()) { if (!file_exists($this->nextcloudDir . '/' . dirname($fileName))) { diff --git a/lib/Updater.php b/lib/Updater.php index d5ac3d20..96322949 100644 --- a/lib/Updater.php +++ b/lib/Updater.php @@ -492,7 +492,10 @@ public function createBackup(): void { } foreach ($this->getRecursiveDirectoryIterator($this->nextcloudDir, $excludedElements) as $absolutePath => $fileInfo) { - $relativePath = explode($this->nextcloudDir, $absolutePath, 2)[1]; + $relativePath = explode($this->nextcloudDir, $absolutePath, 2)[1] ?? null; + if ($relativePath === null) { + throw new \Exception($absolutePath . ' is not in ' . $this->nextcloudDir); + } $relativeDirectory = dirname($relativePath); // Create folder if it doesn't exist @@ -1164,7 +1167,10 @@ private function moveWithExclusions(string $dataLocation, array $excludedElement } - $fileName = explode($dataLocation, $path, 2)[1]; + $fileName = explode($dataLocation, $path, 2)[1] ?? null; + if ($fileName === null) { + throw new \Exception('Could not move ' . $path . ' as it’s not in ' . $dataLocation); + } if ($fileInfo->isFile()) { if (!file_exists($this->nextcloudDir . '/' . dirname($fileName))) { diff --git a/updater.phar b/updater.phar index 8dcb8de586b98b7418595fec397488a30b207dce..e4189936241d86797358e207aa97e743a32a9809 100755 GIT binary patch delta 22639 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 diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php index 99b12393..b00be49f 100644 --- a/vendor/composer/installed.php +++ b/vendor/composer/installed.php @@ -3,7 +3,7 @@ 'name' => '__root__', 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '4123450c26d24ffaa60b2b495e0d8aa934cd982e', + 'reference' => 'aa4d3f66efadf70396c0ab758da5d105bade36e2', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), @@ -13,7 +13,7 @@ '__root__' => array( 'pretty_version' => 'dev-master', 'version' => 'dev-master', - 'reference' => '4123450c26d24ffaa60b2b495e0d8aa934cd982e', + 'reference' => 'aa4d3f66efadf70396c0ab758da5d105bade36e2', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(),