for (l = privilege_list; l != NULL; l = l->next) {
int privilege_level_id = PRVMGR_PACKAGE_VISIBILITY_PUBLIC;
char *privilege_name = (char *)l->data;
+ if (message != NULL) {
+ free(message);
+ message = NULL;
+ }
if (strstr(privilege_name, "/internal/") != NULL) {
_LOGE("[PRVMGR_ERR_INVALID_PRIVILEGE] Invalid privilege name %s", privilege_name);
+ if (mismatched_message != NULL)
+ free(mismatched_message);
+ g_list_free_full(valid_privilege_list, __free_privilege_list);
return PRVMGR_ERR_INVALID_PRIVILEGE;
}
ret = __privilege_manager_check_privilege_list(privilege_name, valid_privilege_list, &privilege_level_id);
- if (message != NULL) {
- free(message);
- message = NULL;
- }
-
if (ret == PRVMGR_ERR_NONE) {
if (visibility < (unsigned int)privilege_level_id) {
_LOGD("[MISMATCHED_PRIVILEGE_LEVEL] %s %s requires certificate level: %s and current certificate level: %s. Use at least certificate with signature level %s.", __get_package_type_string(package_type), privilege_name, __get_privilege_level_string(privilege_level_id), __get_privilege_level_string(visibility), __get_privilege_level_string(privilege_level_id));