Remove pkg existance check in labelPaths function 87/314187/2
authorTomasz Swierczek <t.swierczek@samsung.com>
Mon, 8 Jul 2024 07:42:44 +0000 (09:42 +0200)
committerTomasz Swierczek <t.swierczek@samsung.com>
Mon, 8 Jul 2024 07:54:22 +0000 (09:54 +0200)
The function is called 2 out of 3 times in places
where the package was already added (appInstall, appUpdate),
so no check is needed.

Added the check manually before function call in registering paths API,
where in fact we need to return invalid param for backward compatibility.

Change-Id: I7fb8b967409972ef1f0734f40320682b6bf6cc1b

src/common/service_impl.cpp

index fd612f4f2b4819309aa4bc061a09925795ae4b0e..71e748c35299aa63b35dabcdaf4b617f69988278 100644 (file)
@@ -349,11 +349,6 @@ int ServiceImpl::labelPaths(const pkg_paths &paths,
                             bool isSharedRO)
 {
     try {
-        if (!m_privilegeDb.PkgNameExists(pkgName)) {
-            LogError("No such package: " << pkgName);
-            return SECURITY_MANAGER_ERROR_INPUT_PARAM;
-        }
-
         std::string authorHash;
         m_privilegeDb.GetPkgAuthorHash(pkgName, authorHash);
 
@@ -1934,6 +1929,11 @@ int ServiceImpl::pathsRegister(const Credentials &creds, path_req req)
     if (req.pkgPaths.empty())
         return SECURITY_MANAGER_SUCCESS;
 
+    if (!m_privilegeDb.PkgNameExists(req.pkgName)) {
+        LogError("No such package: " << req.pkgName);
+        return SECURITY_MANAGER_ERROR_INPUT_PARAM;
+    }
+
     try {
         setRequestDefaultValues(req.uid, req.installationType);