checkGids(allowed_gids);
}
+void AppInstallHelperExt:: checkSmackPrivileges(const PrivilegeVector &allowedPrivs,
+ const PrivilegeVector &deniedPrivs) const
+{
+ auto& smackPrivilegeRules = PolicyConfiguration::getSmackPrivRulesMap();
+
+ auto getPrivilegeRules = [&](const PrivilegeVector &privs) {
+ std::vector<AccessRequest> rules;
+
+ for (auto &priv : privs) {
+ auto it = smackPrivilegeRules.find(priv);
+ RUNNER_ASSERT_MSG(it != smackPrivilegeRules.end(), priv << " is not a smack privilege");
+
+ rules.insert(rules.end(), it->second.begin(), it->second.end());
+ }
+ return rules;
+ };
+
+ checkSmackAccesses(getPrivilegeRules(allowedPrivs));
+ checkSmackAccesses(getPrivilegeRules(deniedPrivs), false);
+}
+
void AppInstallHelperExt::checkAfterInstall() const
{
static const std::vector<AccessRequest> staticRules[] =
const PrivilegeVector &deniedPrivs) const;
void checkDeniedPrivileges(const PrivilegeVector &deniedPrivs) const;
void checkPrivilegeGroups(const PrivilegeVector &allowedPrivs) const;
+ void checkSmackPrivileges(const PrivilegeVector &allowedPrivs,
+ const PrivilegeVector &deniedPrivs = {}) const;
void checkAfterInstall() const;
void checkAfterUninstall(bool removePkg = true) const;