int ret;
char *query;
sqlite3_stmt *stmt;
- char *privilege;
+ privilege_x *privilege;
query = sqlite3_mprintf(query_raw, pkgid);
if (query == NULL) {
}
while (sqlite3_step(stmt) == SQLITE_ROW) {
- privilege = NULL;
- _save_column_str(stmt, 0, &privilege);
- if (privilege)
- *privileges = g_list_append(*privileges,
- (gpointer)privilege);
+ privilege = calloc(1, sizeof(privilege_x));
+ _save_column_str(stmt, 0, &privilege->value);
+ _save_column_str(stmt, 1, &privilege->type);
+ *privileges = g_list_append(*privileges,
+ (gpointer)privilege);
}
sqlite3_finalize(stmt);
retvm_if(handle == NULL, PMINFO_R_EINVAL, "pkginfo handle is NULL");
retvm_if(privilege_func == NULL, PMINFO_R_EINVAL, "Callback function is NULL");
int ret;
- const char *privilege;
+ privilege_x *privilege;
GList *tmp;
pkgmgr_pkginfo_x *info = (pkgmgr_pkginfo_x *)handle;
return PMINFO_R_ERROR;
for (tmp = info->pkg_info->privileges; tmp; tmp = tmp->next) {
- privilege = (const char *)tmp->data;
+ privilege = (privilege_x *)tmp->data;
if (privilege == NULL)
continue;
- ret = privilege_func(privilege, user_data);
+ ret = privilege_func(privilege->value, user_data);
if (ret < 0)
break;
}