From 4adff7c598eae8cc585c7143a996def0010ad8bf Mon Sep 17 00:00:00 2001 From: Rafal Krypa Date: Thu, 14 Dec 2017 16:35:11 +0100 Subject: [PATCH] Fix NSMountLogic in case when user has no running applications In some cases directory /run/user/UID/ may exist, but /run/user/UID/apps/ might not. Such case was incorrectly handled in NSMountLogic::readFiles(), it caused an exception to be thrown. Fixed implementation first checks whether directory exists before trying to read it. Change-Id: Ibae0415eac066672d50cf184d82aa3f53c7efdf0 Signed-off-by: Rafal Krypa --- src/common/nsmount-logic.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/common/nsmount-logic.cpp b/src/common/nsmount-logic.cpp index aef596b..73a6fe3 100644 --- a/src/common/nsmount-logic.cpp +++ b/src/common/nsmount-logic.cpp @@ -67,10 +67,10 @@ void NSMountLogic::readFiles(void) users.erase(last, users.end()); for (auto &user : users) { - auto apps = FS::getFilesFromDirectory(MountNS::getUserAppsMountPointsPath(toNumber(user))); - for (auto &app : apps) { - m_entryVector.emplace_back(toNumber(user), app); - } + std::string dir = MountNS::getUserAppsMountPointsPath(toNumber(user)); + if (FS::directoryStatus(dir) > 0) + for (auto &app : FS::getFilesFromDirectory(dir)) + m_entryVector.emplace_back(toNumber(user), app); } } -- 2.7.4