From ce2f9493a72672826bd95f5d7b39210e5c020d06 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 24 Nov 2016 11:44:18 +0100 Subject: [PATCH] filter out oc_mounts results from non existing users Signed-off-by: Robin Appelman --- lib/private/Files/Config/UserMountCache.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php index e9e142d0d4..c9a701d24b 100644 --- a/lib/private/Files/Config/UserMountCache.php +++ b/lib/private/Files/Config/UserMountCache.php @@ -188,6 +188,9 @@ class UserMountCache implements IUserMountCache { private function dbRowToMountInfo(array $row) { $user = $this->userManager->get($row['user_id']); + if (is_null($user)) { + return null; + } return new CachedMountInfo($user, (int)$row['storage_id'], (int)$row['root_id'], $row['mount_point'], $row['mount_id'], isset($row['path'])? $row['path']:''); } @@ -205,7 +208,7 @@ class UserMountCache implements IUserMountCache { $rows = $query->execute()->fetchAll(); - $this->mountsForUsers[$user->getUID()] = array_map([$this, 'dbRowToMountInfo'], $rows); + $this->mountsForUsers[$user->getUID()] = array_filter(array_map([$this, 'dbRowToMountInfo'], $rows)); } return $this->mountsForUsers[$user->getUID()]; } @@ -223,7 +226,7 @@ class UserMountCache implements IUserMountCache { $rows = $query->execute()->fetchAll(); - return array_map([$this, 'dbRowToMountInfo'], $rows); + return array_filter(array_map([$this, 'dbRowToMountInfo'], $rows)); } /** @@ -239,7 +242,7 @@ class UserMountCache implements IUserMountCache { $rows = $query->execute()->fetchAll(); - return array_map([$this, 'dbRowToMountInfo'], $rows); + return array_filter(array_map([$this, 'dbRowToMountInfo'], $rows)); } /**