Modify privacy DB to store user settable privacy packages only 68/160868/1
authorYunjin Lee <yunjin-.lee@samsung.com>
Mon, 20 Nov 2017 09:32:13 +0000 (18:32 +0900)
committerYunjin Lee <yunjin-.lee@samsung.com>
Mon, 20 Nov 2017 09:32:13 +0000 (18:32 +0900)
Change-Id: I079c245ed5e0248e78810ec7909b8044f4f7056d
Signed-off-by: Yunjin Lee <yunjin-.lee@samsung.com>
capi/src/privilege_db_manager.c

index d2f1bd8..8c92e83 100755 (executable)
@@ -900,7 +900,7 @@ int privilege_db_manager_set_package_critical_privilege_info(const uid_t uid, co
                        char* sql = NULL;
                        char * privacy_name = NULL;
                        ret = privilege_db_manager_get_privacy_by_privilege(privilege_name, &privacy_name);
-                       if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_name != NULL && strstr(privacy_name, "N/A") == NULL) {
+                       if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_name != NULL && strstr(privacy_name, "N/A") == NULL && privilege_db_manager_is_user_settable(pkgid, privacy_name) == 1) {
                                sql = sqlite3_mprintf("insert or replace into privacy_package (uid, pkg_id, privacy_name, privilege_name, api_version, is_critical) values (%d, %Q, %Q, %Q, %Q, 1)", uid, pkgid, privacy_name, privilege_name, api_version);
                                TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); g_list_free_full(mapped_privilege_list, free); free(privacy_name); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed");
                                ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);
@@ -946,7 +946,7 @@ int privilege_db_manager_set_package_privacy_privilege_info(const uid_t uid, con
                        char* sql = NULL;
                        char * privacy_name = NULL;
                        ret = privilege_db_manager_get_privacy_by_privilege(privilege_name, &privacy_name);
-                       if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_name != NULL && strstr(privacy_name, "N/A") == NULL) {
+                       if (ret == PRIVILEGE_DB_MANAGER_ERR_NONE && privacy_name != NULL && strstr(privacy_name, "N/A") == NULL && privilege_db_manager_is_user_settable(pkgid, privacy_name) == 1) {
                                sql = sqlite3_mprintf("insert or ignore into privacy_package (uid, pkg_id, privacy_name, privilege_name, api_version, is_critical) values (%d, %Q, %Q, %Q, %Q, 0)", uid, pkgid, privacy_name, privilege_name, api_version);
                                TryReturn(sql != NULL, sqlite3_exec(db, "ROLLBACK TRANSACTION", NULL, NULL, NULL); g_list_free_full(mapped_privilege_list, free); free(privacy_name); __finalize_db(db, stmt, sql), PRIVILEGE_DB_MANAGER_ERR_INVALID_QUERY, "[DB_FAIL] sqlite3_mprintf failed");
                                ret = sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL);