From 35d75dbb384dcaa032cddf30c5f53dcea293e507 Mon Sep 17 00:00:00 2001
From: Robin Appelman <robin@icewind.nl>
Date: Thu, 11 Jun 2020 14:22:59 +0200
Subject: [PATCH] relax permissions mask check for detecting part file rename

with files drop uploads the original file name isn't always used for the '.ocTransferId' source path

Signed-off-by: Robin Appelman <robin@icewind.nl>
---
 lib/private/Files/Storage/Wrapper/PermissionsMask.php | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/lib/private/Files/Storage/Wrapper/PermissionsMask.php b/lib/private/Files/Storage/Wrapper/PermissionsMask.php
index 6b453b4380a..9c2d123b7bf 100644
--- a/lib/private/Files/Storage/Wrapper/PermissionsMask.php
+++ b/lib/private/Files/Storage/Wrapper/PermissionsMask.php
@@ -80,13 +80,9 @@ class PermissionsMask extends Wrapper {
 	}
 
 	public function rename($path1, $path2) {
-		$p = strpos($path1, $path2);
-		if ($p === 0) {
-			$part = substr($path1, strlen($path2));
-			//This is a rename of the transfer file to the original file
-			if (strpos($part, '.ocTransferId') === 0) {
-				return $this->checkMask(Constants::PERMISSION_CREATE) and parent::rename($path1, $path2);
-			}
+		//This is a rename of the transfer file to the original file
+		if (dirname($path1) === dirname($path2) && strpos($path1, '.ocTransferId') > 0) {
+			return $this->checkMask(Constants::PERMISSION_CREATE) and parent::rename($path1, $path2);
 		}
 		return $this->checkMask(Constants::PERMISSION_UPDATE) and parent::rename($path1, $path2);
 	}
-- 
GitLab