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 <r.krypa@samsung.com>
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);
}
}