From 1ddac0fa59ca13a0d1e50f81d40eca37088ad468 Mon Sep 17 00:00:00 2001 From: jongmyeongko Date: Tue, 21 Feb 2017 15:57:07 +0900 Subject: [PATCH] Modify the logic of checking metadata privilege Only key list should be passed to privilege-manager api. Change-Id: Ia874a40d34c6d3b57edfbecc9695c05ed3ff28bd Signed-off-by: jongmyeongko --- src/common/certificate_validation.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/common/certificate_validation.cc b/src/common/certificate_validation.cc index 63fc757..279f9d0 100644 --- a/src/common/certificate_validation.cc +++ b/src/common/certificate_validation.cc @@ -14,6 +14,7 @@ #include "common/privileges.h" #include "common/utils/base64.h" +#include "common/utils/glist_range.h" namespace bf = boost::filesystem; namespace ci = common_installer; @@ -286,8 +287,17 @@ bool ValidateMetadataPrivilege(common_installer::PrivilegeLevel level, return true; char* error = nullptr; int status = PRVMGR_ERR_NONE; - status = privilege_manager_verify_metadata(api_version, metadata_list, + + GList *metadata_keylist = NULL; + for (metadata_x* meta : GListRange(metadata_list)) + metadata_keylist = g_list_append(metadata_keylist, meta->key); + + status = privilege_manager_verify_metadata(api_version, metadata_keylist, PrivilegeLevelToVisibility(level), &error); + + if (metadata_keylist) + g_list_free(metadata_keylist); + if (status != PRVMGR_ERR_NONE) { std::string errnum = boost::str(boost::format("%d") % status); LOG(ERROR) << "Error while verifing metadata privilege: " -- 2.7.4