]> source.dussan.org Git - nextcloud-server.git/commitdiff
fix infinite loop while updating etags, fix for #4365
authorBjoern Schiessle <schiessle@owncloud.com>
Fri, 18 Oct 2013 10:51:16 +0000 (12:51 +0200)
committerBjoern Schiessle <schiessle@owncloud.com>
Wed, 23 Oct 2013 14:33:28 +0000 (16:33 +0200)
apps/files_sharing/lib/updater.php

index 08aaa62e252cdb319f95ab27d95607d18646036b..8945da41e3d6a9f34a900493a9aa852dadeee3c6 100644 (file)
@@ -32,17 +32,19 @@ class Shared_Updater {
                $uid = \OCP\User::getUser();
                $uidOwner = \OC\Files\Filesystem::getOwner($target);
                $info = \OC\Files\Filesystem::getFileInfo($target);
+               $currentOwner = $uidOwner;
                // Correct Shared folders of other users shared with
-               $users = \OCP\Share::getUsersItemShared('file', $info['fileid'], $uidOwner, true);
+               $users = \OCP\Share::getUsersItemShared('file', $info['fileid'], $currentOwner, true);
                if (!empty($users)) {
                        while (!empty($users)) {
                                $reshareUsers = array();
                                foreach ($users as $user) {
-                                       if ( $user !== $uidOwner ) {
+                                       if ( $user !== $currentOwner ) {
                                                $etag = \OC\Files\Filesystem::getETag('');
                                                \OCP\Config::setUserValue($user, 'files_sharing', 'etag', $etag);
                                                // Look for reshares
                                                $reshareUsers = array_merge($reshareUsers, \OCP\Share::getUsersItemShared('file', $info['fileid'], $user, true));
+                                               $currentOwner = $user;
                                        }
                                }
                                $users = $reshareUsers;