Add smack-privilege checkers to AppInstallHelperExt 33/229533/25
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Thu, 23 Apr 2020 08:24:07 +0000 (10:24 +0200)
committerZofia Abramowska <z.abramowska@samsung.com>
Wed, 29 Apr 2020 14:09:15 +0000 (14:09 +0000)
Change-Id: I814dc54983ebcd4c42db8e8fbca36df71e732f54

src/security-manager-tests/common/app_install_helper_ext.cpp
src/security-manager-tests/common/app_install_helper_ext.h

index 2f4e0ee..cec5434 100644 (file)
@@ -140,6 +140,27 @@ void AppInstallHelperExt::checkPrivilegeGroups(const PrivilegeVector &allowedPri
     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[] =
index 00c5c49..5b89d11 100644 (file)
@@ -33,6 +33,8 @@ public:
                          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;