Modify the logic of checking metadata privilege 60/115760/1 accepted/tizen/3.0/common/20170224.125754 accepted/tizen/3.0/ivi/20170224.041441 accepted/tizen/3.0/mobile/20170224.040710 accepted/tizen/3.0/tv/20170224.041053 accepted/tizen/3.0/wearable/20170224.041221 submit/tizen_3.0/20170223.013552
authorjongmyeongko <jongmyeong.ko@samsung.com>
Tue, 21 Feb 2017 06:57:07 +0000 (15:57 +0900)
committerjongmyeong ko <jongmyeong.ko@samsung.com>
Tue, 21 Feb 2017 08:18:44 +0000 (00:18 -0800)
Only key list should be passed to privilege-manager api.

Change-Id: Ia874a40d34c6d3b57edfbecc9695c05ed3ff28bd
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
src/common/certificate_validation.cc

index 63fc757cb5504521308ff23e2ed737cb3afea17b..279f9d0cf8907fc770770a1d5ca5edb12d3ce23c 100644 (file)
@@ -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_x*>(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: "