fix: don't do same-storage move optimization with encryption wrappers

Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
Robin Appelman 2024-11-13 18:47:13 +01:00
parent 22e2419b28
commit 0bc478de2c
No known key found for this signature in database
GPG key ID: 42B69D8A64526EFB

View file

@ -16,6 +16,7 @@ use OC\Files\Cache\Watcher;
use OC\Files\FilenameValidator;
use OC\Files\Filesystem;
use OC\Files\ObjectStore\ObjectStoreStorage;
use OC\Files\Storage\Wrapper\Encryption;
use OC\Files\Storage\Wrapper\Jail;
use OC\Files\Storage\Wrapper\Wrapper;
use OCP\Files\Cache\ICache;
@ -546,7 +547,10 @@ abstract class Common implements Storage, ILockingStorage, IWriteStreamStorage,
}
public function moveFromStorage(IStorage $sourceStorage, string $sourceInternalPath, string $targetInternalPath): bool {
if ($this->isSameStorage($sourceStorage)) {
if (
!$sourceStorage->instanceOfStorage(Encryption::class) &&
$this->isSameStorage($sourceStorage)
) {
// resolve any jailed paths
while ($sourceStorage->instanceOfStorage(Jail::class)) {
/**