From: Junghyun Yeon Date: Fri, 4 Dec 2015 06:34:05 +0000 (+0900) Subject: Apply changed security APIs X-Git-Tag: accepted/tizen/mobile/20151210.230750^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F46%2F53346%2F2;p=platform%2Fcore%2Fappfw%2Fapp-installers.git Apply changed security APIs now privilege-check will manage privilege mapping instead of security-manager Change-Id: I5d84dbfdccd9fd8a68123f6184bde3fbf8b20596 Signed-off-by: Junghyun Yeon --- diff --git a/src/common/step/step_privilege_compatibility.cc b/src/common/step/step_privilege_compatibility.cc index baef0bc..ae2ad5d 100644 --- a/src/common/step/step_privilege_compatibility.cc +++ b/src/common/step/step_privilege_compatibility.cc @@ -5,7 +5,7 @@ #include "common/step/step_privilege_compatibility.h" #include -#include +#include #include #include @@ -38,32 +38,28 @@ bool TranslatePrivilegesForCompatibility(manifest_x* m) { return true; } - // prepare input structure - std::unique_ptr input_privileges( - new const char*[g_list_length(m->privileges)]); - size_t input_size = 0; - for (const char* priv : GListRange(m->privileges)) { - input_privileges[input_size++] = priv; - } - // get mapping - size_t output_size = 0; - char** output_privileges = nullptr; - if (security_manager_get_privileges_mapping(m->api_version, kPlatformVersion, - input_privileges.get(), input_size, &output_privileges, &output_size) - != SECURITY_MANAGER_SUCCESS) { - LOG(ERROR) << "security_manager_get_privileges_mapping failed"; + GList* mapped_privilege_list; + bool is_webapp = (strncmp(m->type, "wgt", strlen("wgt")) == 0) ? true : false; + LOG(DEBUG) << "type = " << m->type; + if (privilege_manager_get_mapped_privilege_list(m->api_version, + is_webapp ? PRVMGR_PACKAGE_TYPE_WRT : PRVMGR_PACKAGE_TYPE_CORE, + m->privileges, &mapped_privilege_list) != PRVMGR_ERR_NONE) { + LOG(ERROR) << "privilege_manager_get_mapped_privilege_list failed"; + return false; + } else if (mapped_privilege_list == NULL) { + LOG(ERROR) << "privilege_manager_get_mapped_privilege_list failed"; return false; } // set pkgmgr new list g_list_free_full(m->privileges, free); m->privileges = nullptr; - for (size_t i = 0; i < output_size; ++i) { - m->privileges = g_list_append(m->privileges, strdup(output_privileges[i])); + for (GList* l = mapped_privilege_list; l != NULL; l = l->next) { + m->privileges = g_list_append(m->privileges, (char*)l->data); } - security_manager_privilege_mapping_free(output_privileges, output_size); + g_list_free_full(mapped_privilege_list, free); return true; } diff --git a/src/wgt/wgt_installer.cc b/src/wgt/wgt_installer.cc index b3e53e1..31db6c4 100644 --- a/src/wgt/wgt_installer.cc +++ b/src/wgt/wgt_installer.cc @@ -69,7 +69,6 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(true); AddStep(); - AddStep(); AddStep(); AddStep(); AddStep(); @@ -89,7 +88,6 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(true); AddStep(); - AddStep(); AddStep(); AddStep(); AddStep(); @@ -138,7 +136,6 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep("res/wgt/"); AddStep(true); AddStep(); - AddStep(); AddStep(); AddStep(); AddStep();