Fix a bug when retrieving package dependency info 70/201770/1
authorSangyoon Jang <jeremy.jang@samsung.com>
Tue, 19 Mar 2019 08:40:43 +0000 (17:40 +0900)
committerSangyoon Jang <jeremy.jang@samsung.com>
Tue, 19 Mar 2019 08:40:43 +0000 (17:40 +0900)
Change-Id: I05e53fd8d9ef32dc0049304b824ed1688771202b
Signed-off-by: Sangyoon Jang <jeremy.jang@samsung.com>
src/pkgmgrinfo_pkginfo.c

index 6d7dbfa..a8ba178 100644 (file)
@@ -311,14 +311,22 @@ static int _pkginfo_get_appdefined_privilege(sqlite3 *db, const char *pkgid,
 static int _pkginfo_get_dependency(sqlite3 *db, const char *pkgid,
                GList **dependencies)
 {
-       static const char query[] =
+       static const char query_raw[] =
                "SELECT DISTINCT depends_on, type, required_version "
-               "FROM package_dependency_info WHERE package=?";
+               "FROM package_dependency_info WHERE package=%Q";
        int ret;
+       char *query;
        sqlite3_stmt *stmt;
        dependency_x *dependency;
 
+       query = sqlite3_mprintf(query_raw, pkgid);
+       if (query == NULL) {
+               LOGE("out of memory");
+               return PMINFO_R_ERROR;
+       }
+
        ret = sqlite3_prepare_v2(db, query, strlen(query), &stmt, NULL);
+       sqlite3_free(query);
        if (ret != SQLITE_OK) {
                LOGE("prepare failed: %s", sqlite3_errmsg(db));
                return PMINFO_R_ERROR;