Add OOM exception handler
[platform/core/appfw/wgt-backend.git] / src / wgt / step / security / step_check_extension_privileges.cc
index 2e8d2a2..0aa90a7 100755 (executable)
@@ -41,6 +41,7 @@ common_installer::Step::Status StepCheckExtensionPrivileges::precheck() {
   }
   return Status::OK;
 }
+
 common_installer::Step::Status StepCheckExtensionPrivileges::process() {
   std::string app_ext_config_pattern(GetExtensionPath());
 
@@ -71,8 +72,22 @@ common_installer::Step::Status StepCheckExtensionPrivileges::process() {
       if (current_privileges.find(priv) == current_privileges.end()) {
         privilege_x* privilege =
             reinterpret_cast<privilege_x*>(calloc(1, sizeof(privilege_x)));
+        if (!privilege) {
+          g_list_free_full(privileges, &common_installer::FreePrivilegeX);
+          return Status::ERROR;
+        }
         privilege->type = strdup(common_installer::kWebPrivilegeType);
+        if (!privilege->type) {
+          common_installer::FreePrivilegeX(privilege);
+          g_list_free_full(privileges, &common_installer::FreePrivilegeX);
+          return Status::ERROR;
+        }
         privilege->value = strdup(priv.c_str());
+        if (!privilege->value) {
+          common_installer::FreePrivilegeX(privilege);
+          g_list_free_full(privileges, &common_installer::FreePrivilegeX);
+          return Status::ERROR;
+        }
         privileges = g_list_append(privileges, privilege);
       }
     }