diff --git a/lib/public/share.php b/lib/public/share.php
index 1eb0faf097391ed506adf660e6859a8152db5de0..6c93139b10789ae8c50b27bcc25aa9152eea4af0 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -137,7 +137,7 @@ class Share {
 
 		$shares = array();
 		$publicShare = false;
-		$source = '-1';
+		$source = -1;
 		$cache = false;
 
 		$view = new \OC\Files\View('/' . $user . '/files/');
@@ -148,7 +148,7 @@ class Share {
 			$cache = new \OC\Files\Cache\Cache($meta['storage']);
 		}
 
-		while ($source !== '-1') {
+		while ($source !== -1) {
 
 			// Fetch all shares of this file path from DB
 			$query = \OC_DB::prepare(
@@ -213,9 +213,9 @@ class Share {
 			// let's get the parent for the next round
 			$meta = $cache->get((int)$source);
 			if($meta !== false) {
-				$source = $meta['parent'];
+				$source = (int)$meta['parent'];
 			} else {
-				$source = '-1';
+				$source = -1;
 			}
 		}
 		// Include owner in list of users, if requested