From dbb93074b30e5edb95db75b0db79b14dc7ad3428 Mon Sep 17 00:00:00 2001
From: Joas Schilling <nickvergessen@gmx.de>
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);
-- 
GitLab