From 3836d83e401cfde29ab28c77587dff185a588fa5 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Thu, 31 May 2018 19:57:14 +0900 Subject: [PATCH] Fix crash issue when getting appcontrol info Change-Id: I312520ffda5dc6ceb2b338bce8e6e482404551f0 Signed-off-by: Sangyoon Jang --- src/pkgmgrinfo_appinfo.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pkgmgrinfo_appinfo.c b/src/pkgmgrinfo_appinfo.c index ed3ba9a..48b041c 100644 --- a/src/pkgmgrinfo_appinfo.c +++ b/src/pkgmgrinfo_appinfo.c @@ -149,7 +149,8 @@ static int _appinfo_get_category(sqlite3 *db, const char *appid, return PMINFO_R_OK; } -static void __parse_appcontrol(GList **appcontrol, char *appcontrol_str) +static void __parse_appcontrol(GList **appcontrol, char *appcontrol_str, + char *visibility) { char *dup; char *token; @@ -180,6 +181,7 @@ static void __parse_appcontrol(GList **appcontrol, char *appcontrol_str) token = strtok_r(NULL, "|", &ptr); if (token && strcmp(token, "NULL")) ac->mime = strdup(token); + ac->visibility = strdup(visibility); *appcontrol = g_list_append(*appcontrol, ac); } while ((token = strtok_r(NULL, ";", &ptr))); @@ -190,12 +192,13 @@ static int _appinfo_get_app_control(sqlite3 *db, const char *appid, GList **appcontrol) { static const char query_raw[] = - "SELECT app_control FROM package_app_app_control " + "SELECT app_control, visibility FROM package_app_app_control " "WHERE app_id=%Q"; int ret; char *query; sqlite3_stmt *stmt; char *str; + char *visibility; query = sqlite3_mprintf(query_raw, appid); if (query == NULL) { @@ -212,10 +215,13 @@ static int _appinfo_get_app_control(sqlite3 *db, const char *appid, while (sqlite3_step(stmt) == SQLITE_ROW) { str = NULL; + visibility = NULL; _save_column_str(stmt, 0, &str); + _save_column_str(stmt, 0, &visibility); /* TODO: revise */ - __parse_appcontrol(appcontrol, str); + __parse_appcontrol(appcontrol, str, visibility); free(str); + free(visibility); } sqlite3_finalize(stmt); -- 2.7.4