Fix identifying application id 79/175479/1
authorZofia Grzelewska <z.abramowska@samsung.com>
Tue, 10 Apr 2018 12:20:29 +0000 (14:20 +0200)
committerZofia Grzelewska <z.abramowska@samsung.com>
Tue, 10 Apr 2018 12:23:41 +0000 (14:23 +0200)
Both identifyApp and getOwnAppId were incorrectly implemented
and return empty string for hybrid applications.

Change-Id: I80b214865df80cd56ebdcf416c1faeaeb74abb90

src/common/policy/Policy.cpp

index 0d48c08..6af0e66 100644 (file)
@@ -156,6 +156,8 @@ void identifyApp(const std::string &client, std::string &appId, std::string &pkg
     PkgInfo pkgInfo(pkgName, geteuid());
     if (!appName)
         appId = pkgInfo.mainAppId();
+    else
+        appId = appName;
 
     pkgLabel = pkgInfo.pkgLabel();
 }
@@ -180,11 +182,12 @@ std::string getOwnAppId()
     std::unique_ptr<char, decltype(free)*> app_name_p(appName, free);
     throwOnSMError("security_manager_identify_app_from_pid", ret);
 
-    PkgInfo pkgInfo(pkgName, geteuid());
-    if (!appName)
+    if (!appName) {
+        PkgInfo pkgInfo(pkgName, geteuid());
         return pkgInfo.mainAppId();
+    }
 
-    return std::string();
+    return appName;
 }
 
 PolicyEntry::PolicyEntry() : m_entry(nullptr) {