return (S_ISDIR(ftsent->fts_statp->st_mode));
}
-static bool labelExecs(const FTSENT *ftsent)
-{
- // LogDebug("Mode = " << ftsent->fts_statp->st_mode); // this could be helpfull in debugging
- // label only regular executable files
- return (S_ISREG(ftsent->fts_statp->st_mode) && (ftsent->fts_statp->st_mode & S_IXUSR));
-}
-
static inline void pathSetSmack(const char *path, const Smack::Label &label,
const char *xattr_name)
{
}
static void labelDir(const std::string &path, const Smack::Label &label,
- bool set_transmutable, bool set_executables)
+ bool set_transmutable)
{
// setting access label on everything in given directory and below
dirSetSmack(path, label, XATTR_NAME_SMACK, labelAll);
// setting transmute on dirs
if (set_transmutable)
dirSetSmack(path, "TRUE", XATTR_NAME_SMACKTRANSMUTE, labelDirs);
-
- // setting SMACK64EXEC labels
- if (set_executables)
- dirSetSmack(path, label, XATTR_NAME_SMACKEXEC, &labelExecs);
}
void setupPath(
const std::string &authorHash)
{
std::string label;
- bool label_executables, label_transmute, follow_symlink = false;
+ bool label_transmute, follow_symlink = false;
switch (pathType) {
case SECURITY_MANAGER_PATH_RW:
label = generatePathRWLabel(pkgName);
- label_executables = false;
label_transmute = true;
break;
case SECURITY_MANAGER_PATH_RO:
label = generatePathROLabel(pkgName);
- label_executables = false;
label_transmute = false;
break;
case SECURITY_MANAGER_PATH_PUBLIC_RO:
label.assign(LABEL_FOR_APP_PUBLIC_RO_PATH);
- label_executables = false;
label_transmute = true;
break;
case SECURITY_MANAGER_PATH_OWNER_RW_OTHER_RO:
label = generatePathSharedROLabel();
- label_executables = false;
label_transmute = true;
follow_symlink = true;
break;
if (authorHash.empty())
ThrowMsg(SmackException::InvalidParam, "You must define author to use PATH_TRUSED_RW");
label = generatePathTrustedLabel(authorHash);
- label_executables = false;
label_transmute = true;
break;
default:
Throw(SmackException::InvalidPathType);
}
if (follow_symlink) {
- labelDir(realPath(path), label, label_transmute, label_executables);
+ labelDir(realPath(path), label, label_transmute);
}
- return labelDir(path, label, label_transmute, label_executables);
+ return labelDir(path, label, label_transmute);
}
void setupPkgBasePath(const std::string &basePath)