From eb5ac6e0ed7c6709f8067f75b45c493d8984d69c Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Tue, 8 Aug 2017 18:05:44 +0900 Subject: [PATCH] Fix SetPackageDirectoryOwnerAndPermissions Skip when path is symlink. Change-Id: Id133bb82a196c276340bb9588f633988ca1aa95d Signed-off-by: Sangyoon Jang --- src/common/shared_dirs.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/common/shared_dirs.cc b/src/common/shared_dirs.cc index 3aea6b7..32fea9d 100644 --- a/src/common/shared_dirs.cc +++ b/src/common/shared_dirs.cc @@ -764,11 +764,13 @@ bool SetPackageDirectoryOwnerAndPermissions(const bf::path& path, uid_t uid) { perms644 | bf::owner_exe | bf::group_exe | bf::others_exe; for (bf::recursive_directory_iterator iter(path); iter != bf::recursive_directory_iterator(); ++iter) { - if (bf::is_directory(iter->path()) && + if (bf::is_symlink(symlink_status(iter->path())) || + (bf::is_directory(iter->path()) && (iter->path().filename() == ".mmc" || iter->path().filename() == ".pkg" || - iter->path().filename() == "tep")) { - // skip path, which is related to mount or directory installer creates + iter->path().filename() == "tep"))) { + // skip symlink or path which is related to + // mount or directory installer creates continue; } else if (bf::is_directory(iter->path())) { // directories -- 2.7.4