From d65a3e1845be35d1ab1c83308d1d427cfa99778d Mon Sep 17 00:00:00 2001 From: Hwankyu Jhun Date: Thu, 8 Aug 2019 18:43:59 +0900 Subject: [PATCH] Remove unnecessary permission check If a process doesn't have a permission, sqlite3_open_v2() returns an error. Change-Id: If035b484035a2c27059e8aabadcefc652349c204 Signed-off-by: Hwankyu Jhun --- include/aul_svc_db.h | 1 - src/service.c | 94 ---------------------------------------------------- src/service_db.c | 21 ------------ 3 files changed, 116 deletions(-) diff --git a/include/aul_svc_db.h b/include/aul_svc_db.h index 2873172..0d6f163 100755 --- a/include/aul_svc_db.h +++ b/include/aul_svc_db.h @@ -35,7 +35,6 @@ extern "C" { #endif -int _svc_db_check_perm(uid_t uid, bool readonly); int _svc_db_add_app(const char *op, const char *mime_type, const char *uri, const char *pkg_name, uid_t uid); int _svc_db_delete_with_pkgname(const char *pkg_name, uid_t uid); char* _svc_db_get_app(const char *op, const char *mime_type, const char *uri, uid_t uid); diff --git a/src/service.c b/src/service.c index 6fd002c..9e05ccb 100755 --- a/src/service.c +++ b/src/service.c @@ -1008,13 +1008,6 @@ static int __resolution_pre(resolution_info_t *info) return AUL_SVC_RET_OK; } - ret = _svc_db_check_perm(info->uid, true); - if (ret < 0) { - _E("Permission denied. error(%d)", ret); - ret = AUL_SVC_RET_EILLACC; - goto err; - } - return AUL_SVC_RET_OK; err: @@ -1423,13 +1416,6 @@ API int aul_svc_get_all_defapps_for_uid(aul_svc_info_iter_fn iter_fn, GSList *pkg_list = NULL; GSList *iter = NULL; - - ret = _svc_db_check_perm(uid, true); - if (ret < 0) { - _E("permission error : %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_get_list_with_all_defapps(&pkg_list, uid); if (ret < 0) return ret; @@ -1558,12 +1544,6 @@ API int aul_svc_set_defapp_for_uid(const char *op, const char *mime_type, if (op == NULL || defapp == NULL) return AUL_SVC_RET_EINVAL; - ret = _svc_db_check_perm(uid, false); - if (ret < 0) { - _E("permission error : %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_add_app(op, mime_type, uri, defapp, uid); if (ret < 0) return AUL_SVC_RET_ERROR; @@ -1583,12 +1563,6 @@ API int aul_svc_unset_defapp_for_uid(const char *defapp, uid_t uid) if (defapp == NULL) return AUL_SVC_RET_EINVAL; - ret = _svc_db_check_perm(uid, false); - if (ret < 0) { - _E("permission error : %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_delete_with_pkgname(defapp, uid); if (ret < 0) @@ -1606,12 +1580,6 @@ API int aul_svc_unset_all_defapps_for_uid(uid_t uid) { int ret; - ret = _svc_db_check_perm(uid, false); - if (ret < 0) { - _E("permission error : %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_delete_all(uid); if (ret < 0) @@ -1628,14 +1596,6 @@ API int aul_svc_is_defapp(const char *pkg_name) API int aul_svc_is_defapp_for_uid(const char *pkg_name, uid_t uid) { - int ret; - - ret = _svc_db_check_perm(uid, true); - if (ret < 0) { - _E("permission error : %d", ret); - return AUL_SVC_RET_EILLACC; - } - return _svc_db_is_defapp(pkg_name, uid); } @@ -1779,12 +1739,6 @@ API int aul_svc_set_alias_appid_for_uid(const char *alias_appid, { int ret; - ret = _svc_db_check_perm(uid, false); - if (ret < 0) { - _E("Permission error: %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_add_alias_appid(alias_appid, appid, uid); if (ret < 0) return AUL_SVC_RET_ERROR; @@ -1801,12 +1755,6 @@ API int aul_svc_unset_alias_appid_for_uid(const char *alias_appid, uid_t uid) { int ret; - ret = _svc_db_check_perm(uid, false); - if (ret < 0) { - _E("Permission error: %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_delete_alias_appid(alias_appid, uid); if (ret < 0) return AUL_SVC_RET_ERROR; @@ -1832,12 +1780,6 @@ API int aul_svc_foreach_alias_info_for_uid(void (*callback)( return AUL_SVC_RET_EINVAL; } - ret = _svc_db_check_perm(uid, true); - if (ret < 0) { - _E("Permission error: %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_foreach_alias_info(callback, uid, user_data); if (ret < 0) return AUL_SVC_RET_ERROR; @@ -1854,12 +1796,6 @@ API int aul_svc_enable_alias_info_for_uid(const char *appid, uid_t uid) { int ret; - ret = _svc_db_check_perm(uid, false); - if (ret < 0) { - _E("Permission error: %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_enable_alias_info(appid, uid); if (ret < 0) return AUL_SVC_RET_ERROR; @@ -1876,12 +1812,6 @@ API int aul_svc_disable_alias_info_for_uid(const char *appid, uid_t uid) { int ret; - ret = _svc_db_check_perm(uid, false); - if (ret < 0) { - _E("Permission error: %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_disable_alias_info(appid, uid); if (ret < 0) return AUL_SVC_RET_ERROR; @@ -1900,12 +1830,6 @@ API int aul_svc_get_appid_by_alias_appid_for_uid(const char *alias_appid, { int ret; - ret = _svc_db_check_perm(uid, true); - if (ret < 0) { - _E("Permission error: %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_get_appid_from_alias_info(alias_appid, appid, uid); if (ret < 0) return AUL_SVC_RET_ERROR; @@ -1932,12 +1856,6 @@ API int aul_svc_foreach_alias_info_by_appid_for_uid(int (*callback)( return AUL_SVC_RET_EINVAL; } - ret = _svc_db_check_perm(uid, true); - if (ret < 0) { - _E("Permission error: %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_foreach_alias_info_by_appid(callback, appid, uid, user_data); if (ret < 0) @@ -1964,12 +1882,6 @@ API int aul_svc_foreach_allowed_info_for_uid(int (*callback)(const char *appid, return AUL_SVC_RET_EINVAL; } - ret = _svc_db_check_perm(uid, true); - if (ret < 0) { - _E("Permission error: %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_foreach_allowed_info(callback, uid, user_data); if (ret < 0) return AUL_SVC_RET_ERROR; @@ -1996,12 +1908,6 @@ API int aul_svc_foreach_allowed_info_by_appid_for_uid(int (*callback)( return AUL_SVC_RET_EINVAL; } - ret = _svc_db_check_perm(uid, true); - if (ret < 0) { - _E("Permission error: %d", ret); - return AUL_SVC_RET_EILLACC; - } - ret = _svc_db_foreach_allowed_info_by_appid(callback, appid, uid, user_data); if (ret < 0) diff --git a/src/service_db.c b/src/service_db.c index 5fa39f0..18a1aa2 100755 --- a/src/service_db.c +++ b/src/service_db.c @@ -292,27 +292,6 @@ static int __fini(sqlite3 **svc_db) return 0; } -int _svc_db_check_perm(uid_t uid, bool readonly) -{ - int ret = 0; - char *db; - sqlite3 *svc_db = NULL; - - if (__init(uid, readonly, &svc_db) < 0) - return -1; - - db = __get_svc_db(uid); - if (db == NULL) { - __fini(&svc_db); - return -1; - } - - ret = access(db, readonly ? R_OK : (R_OK | W_OK)); - free(db); - __fini(&svc_db); - return ret; -} - static int __insert_info(sqlite3 *db, const char *op, const char *mime_type, const char *uri, const char *appid) { -- 2.7.4