summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunghoon Park <jh9216.park@samsung.com>2017-02-14 16:30:04 +0900
committerJunghoon Park <jh9216.park@samsung.com>2017-02-14 16:30:04 +0900
commit8693fefaeeaf835f262ae3a73a0d4d7a6cdcedfe (patch)
tree8027f376802f46b5b5fab98c196c52d4bf6cb43f
parentd49e3a99bc71854dd62288bcaccea72ca1fd520f (diff)
downloadaul-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-xsrc/service_db.c20
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)