diff options
author | Vincent Petry <pvince81@owncloud.com> | 2015-05-13 12:12:39 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2015-06-01 13:22:56 +0200 |
commit | 8d53dc803f978f0b2e5db1c3503dc5fb0d55b0c5 (patch) | |
tree | 7f16f4b848f00ad32f37b6faf7218fbfbb3dee5b /lib/private | |
parent | 0775e9c1ca95a3f93b1069610fd89a0801f9f897 (diff) | |
download | nextcloud-server-8d53dc803f978f0b2e5db1c3503dc5fb0d55b0c5.tar.gz nextcloud-server-8d53dc803f978f0b2e5db1c3503dc5fb0d55b0c5.zip |
Use md5 + prefix for file locking keys in memcache
Also trim slashes from paths to make sure the locks are based on the
same paths.
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/files/storage/common.php | 4 | ||||
-rw-r--r-- | lib/private/files/view.php | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php index 1c54f7cbc14..f0c9e1bfa05 100644 --- a/lib/private/files/storage/common.php +++ b/lib/private/files/storage/common.php @@ -630,7 +630,7 @@ abstract class Common implements Storage { * @throws \OCP\Lock\LockedException */ public function acquireLock($path, $type, ILockingProvider $provider) { - $provider->acquireLock(md5($this->getId() . '::' . $path), $type); + $provider->acquireLock('files/' . md5($this->getId() . '::' . trim($path, '/')), $type); } /** @@ -639,6 +639,6 @@ abstract class Common implements Storage { * @param \OCP\Lock\ILockingProvider $provider */ public function releaseLock($path, $type, ILockingProvider $provider) { - $provider->releaseLock(md5($this->getId() . '::' . $path), $type); + $provider->releaseLock('files/' . md5($this->getId() . '::' . trim($path, '/')), $type); } } diff --git a/lib/private/files/view.php b/lib/private/files/view.php index 166989ed77a..b499bbb3641 100644 --- a/lib/private/files/view.php +++ b/lib/private/files/view.php @@ -1621,9 +1621,11 @@ class View { if (!$path) { return []; } + + $path = trim($path, '/'); $parts = explode('/', $path); - // remove the singe file + // remove the single file array_pop($parts); $result = array('/'); $resultPath = ''; |