From dbb93074b30e5edb95db75b0db79b14dc7ad3428 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 7 May 2014 17:37:49 +0200 Subject: [PATCH] Fix endless loop on windows servers Directory seperator is \ on windows However we can just check for path != dirname(path) because that is the same for '' (empty string), '.' and DIRECTORY_SEPARATOR on all OS --- apps/files_sharing/lib/helper.php | 2 +- apps/files_sharing/lib/updater.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files_sharing/lib/helper.php b/apps/files_sharing/lib/helper.php index c7347539fc..7a5b859826 100644 --- a/apps/files_sharing/lib/helper.php +++ b/apps/files_sharing/lib/helper.php @@ -125,7 +125,7 @@ class Helper { $ids = array(); - while ($path !== '' && $path !== '.' && $path !== '/') { + while ($path !== dirname($path)) { $info = $ownerView->getFileInfo($path); if ($info instanceof \OC\Files\FileInfo) { $ids[] = $info['fileid']; diff --git a/apps/files_sharing/lib/updater.php b/apps/files_sharing/lib/updater.php index 249211c306..43f5f144d1 100644 --- a/apps/files_sharing/lib/updater.php +++ b/apps/files_sharing/lib/updater.php @@ -38,7 +38,7 @@ class Shared_Updater { \OC\Files\Filesystem::initMountPoints($user); $view = new \OC\Files\View('/' . $user); if ($view->file_exists($path)) { - while ($path !== '/') { + while ($path !== dirname($path)) { $etag = $view->getETag($path); $view->putFileInfo($path, array('etag' => $etag)); $path = dirname($path);