diff options
author | Junghoon Park <jh9216.park@samsung.com> | 2017-02-14 16:30:04 +0900 |
---|---|---|
committer | Junghoon Park <jh9216.park@samsung.com> | 2017-02-14 16:30:04 +0900 |
commit | 8693fefaeeaf835f262ae3a73a0d4d7a6cdcedfe (patch) | |
tree | 8027f376802f46b5b5fab98c196c52d4bf6cb43f | |
parent | d49e3a99bc71854dd62288bcaccea72ca1fd520f (diff) | |
download | aul-1-8693fefaeeaf835f262ae3a73a0d4d7a6cdcedfe.tar.gz aul-1-8693fefaeeaf835f262ae3a73a0d4d7a6cdcedfe.tar.bz2 aul-1-8693fefaeeaf835f262ae3a73a0d4d7a6cdcedfe.zip |
Handling single quote during app control resolution
Change-Id: Ia59873ca475662967169094a2a551aef77787c89
Signed-off-by: Junghoon Park <jh9216.park@samsung.com>
-rwxr-xr-x | src/service_db.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/service_db.c b/src/service_db.c index 93302cc9..ae92c1a4 100755 --- a/src/service_db.c +++ b/src/service_db.c @@ -619,34 +619,32 @@ int _svc_db_get_list_with_all_defapps(GSList **pkg_list, uid_t uid) char *_svc_db_query_builder_add(char *old_query, char *op, char *uri, char *mime, bool collate) { - char query[QUERY_MAX_LEN]; + char *query; + char *q; if (collate) { if (old_query) { - snprintf(query, QUERY_MAX_LEN, - "%s, '%s|%s|%s'", + query = sqlite3_mprintf("%s, '%q|%q|%q'", old_query, op, uri, mime); free(old_query); } else { - snprintf(query, QUERY_MAX_LEN, - "'%s|%s|%s'", + query = sqlite3_mprintf("'%q|%q|%q'", op, uri, mime); } - } else { if (old_query) { - snprintf(query, QUERY_MAX_LEN, - "%s OR ac.app_control like '%%%s|%s|%s%%' ", + query = sqlite3_mprintf("%s OR ac.app_control like '%%%q|%q|%q%%' ", old_query, op, uri, mime); free(old_query); } else { - snprintf(query, QUERY_MAX_LEN, - "ac.app_control like '%%%s|%s|%s%%' ", + query = sqlite3_mprintf("ac.app_control like '%%%q|%q|%q%%' ", op, uri, mime); } } - return strdup(query); + q = strdup(query); + sqlite3_free(query); + return q; } char *_svc_db_query_builder_or(char *q1, char *q2) |