Extract communication functions to common library
[platform/core/security/security-manager.git] / src / client / client-security-manager.cpp
index 8ca6f08..4d6fecb 100644 (file)
@@ -44,6 +44,8 @@
 #include <client-common.h>
 #include <protocols.h>
 #include <service_impl.h>
+#include <connection.h>
+
 #include <security-manager.h>
 #include <client-offline.h>
 
@@ -363,7 +365,9 @@ int security_manager_set_process_label_from_appid(const char *app_id)
     if (smack_smackfs_path() == NULL)
         return SECURITY_MANAGER_SUCCESS;
 
-    if (SecurityManager::generateAppLabel(std::string(app_id), appLabel) == false) {
+    try {
+        appLabel = SecurityManager::SmackLabels::generateAppLabel(app_id);
+    } catch (...) {
         LogError("Failed to generate smack label for appId: " << app_id);
         return SECURITY_MANAGER_API_ERROR_NO_SUCH_OBJECT;
     }
@@ -716,13 +720,13 @@ static inline int security_manager_get_policy_internal(
         }
         //receive response from server
         Deserialization::Deserialize(recv, retval);
-        switch(retval) {
+        switch (retval) {
             case SECURITY_MANAGER_API_SUCCESS: {
                 //extract and allocate buffers for privs policy entries
                 int entriesCnt = 0;
                 policy_entry **entries = nullptr;
-                Deserialization::Deserialize(recv, entriesCnt);
                 try {
+                    Deserialization::Deserialize(recv, entriesCnt);
                     entries = new policy_entry*[entriesCnt]();
                     for (int i = 0; i < entriesCnt; ++i) {
                         entries[i] = new policy_entry;
@@ -732,7 +736,7 @@ static inline int security_manager_get_policy_internal(
                     LogError("Error while parsing server response");
                     for (int i = 0; i < entriesCnt; ++i)
                         delete(entries[i]);
-                    delete entries;
+                    delete[] entries;
                     return SECURITY_MANAGER_ERROR_UNKNOWN;
                 }
                 *p_size = entriesCnt;