Pass it's own uid when calling not 'usr' prefixed api 11/64011/7 accepted/tizen/common/20160406.143517 accepted/tizen/ivi/20160406.012759 accepted/tizen/mobile/20160406.012644 accepted/tizen/tv/20160406.012703 accepted/tizen/wearable/20160406.012731 submit/tizen/20160405.052614
authorSangyoon Jang <s89.jang@samsung.com>
Tue, 29 Mar 2016 10:31:49 +0000 (19:31 +0900)
committerSangyoon Jang <s89.jang@samsung.com>
Tue, 5 Apr 2016 02:57:00 +0000 (19:57 -0700)
If the caller is a regular user, pass it's own uid, but if the caller is
a non-regular user(root or system daemon), pass tizenglobalapp user's uid.

Change-Id: Iee7ac5e0526c0ba265e0f390ee51d5b8761a12fc
Signed-off-by: Sangyoon Jang <s89.jang@samsung.com>
include/pkgmgrinfo_private.h
parser/pkgmgr_parser_db.c
src/pkgmgrinfo_appinfo.c
src/pkgmgrinfo_certinfo.c
src/pkgmgrinfo_db.c
src/pkgmgrinfo_pkginfo.c

index ad90456..3c915eb 100644 (file)
@@ -223,4 +223,15 @@ void _save_column_str(sqlite3_stmt *stmt, int idx, char **str);
 char *_get_system_locale(void);
 void __get_filter_condition(gpointer data, char **condition);
 
+#define REGULAR_USER 5000
+static inline uid_t _getuid(void)
+{
+       uid_t uid = getuid();
+
+       if (uid < REGULAR_USER)
+               return tzplatform_getuid(TZ_SYS_GLOBALAPP_USER);
+       else
+               return uid;
+}
+
 #endif  /* __PKGMGRINFO_PRIVATE_H__ */
index 9f51f1b..2b36c38 100644 (file)
@@ -366,6 +366,17 @@ static int __guestmode_visibility_cb(void *data, int ncols, char **coltxt, char
 static int __pkgmgr_parser_create_db(sqlite3 **db_handle, const char *db_path);
 static int __parserdb_change_perm(const char *db_file, uid_t uid);
 
+#define REGULAR_USER 5000
+static inline uid_t _getuid(void)
+{
+       uid_t uid = getuid();
+
+       if (uid < REGULAR_USER)
+               return tzplatform_getuid(TZ_SYS_GLOBALAPP_USER);
+       else
+               return uid;
+}
+
 static int __delete_subpkg_list_cb(void *data, int ncols, char **coltxt, char **colname)
 {
        if (coltxt[0])
@@ -2579,7 +2590,7 @@ err:
 
 API int pkgmgr_parser_update_tep_info_in_db(const char *pkgid, const char *tep_path)
 {
-       return pkgmgr_parser_update_tep_info_in_usr_db(pkgid, tep_path, GLOBAL_USER);
+       return pkgmgr_parser_update_tep_info_in_usr_db(pkgid, tep_path, _getuid());
 }
 
 API int pkgmgr_parser_update_tep_info_in_usr_db(const char *pkgid, const char *tep_path, uid_t uid)
@@ -2711,7 +2722,7 @@ err:
 
 API int pkgmgr_parser_update_manifest_info_in_db(manifest_x *mfx)
 {
-       return pkgmgr_parser_update_manifest_info_in_usr_db(mfx, GLOBAL_USER);
+       return pkgmgr_parser_update_manifest_info_in_usr_db(mfx, _getuid());
 }
 
 API int pkgmgr_parser_delete_manifest_info_from_usr_db(manifest_x *mfx, uid_t uid)
@@ -2756,7 +2767,7 @@ err:
 
 API int pkgmgr_parser_delete_manifest_info_from_db(manifest_x *mfx)
 {
-       return pkgmgr_parser_delete_manifest_info_from_usr_db(mfx, GLOBAL_USER);
+       return pkgmgr_parser_delete_manifest_info_from_usr_db(mfx, _getuid());
 }
 
 API int pkgmgr_parser_update_preload_info_in_db()
@@ -2875,7 +2886,7 @@ err:
 
 API int pkgmgr_parser_update_app_disable_info_in_db(const char *appid, int is_disable)
 {
-       return pkgmgr_parser_update_app_disable_info_in_usr_db(appid, GLOBAL_USER, is_disable);
+       return pkgmgr_parser_update_app_disable_info_in_usr_db(appid, _getuid(), is_disable);
 }
 
 API int pkgmgr_parser_update_app_disable_info_in_usr_db(const char *appid, uid_t uid, int is_disable)
index 2f11839..307d271 100644 (file)
@@ -923,7 +923,7 @@ API int pkgmgrinfo_appinfo_get_usr_disabled_appinfo(const char *appid, uid_t uid
 
 API int pkgmgrinfo_appinfo_get_disabled_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle)
 {
-       return pkgmgrinfo_appinfo_get_usr_disabled_appinfo(appid, GLOBAL_USER, handle);
+       return pkgmgrinfo_appinfo_get_usr_disabled_appinfo(appid, _getuid(), handle);
 }
 
 API int pkgmgrinfo_appinfo_get_usr_appinfo(const char *appid, uid_t uid,
@@ -948,7 +948,7 @@ API int pkgmgrinfo_appinfo_get_usr_appinfo(const char *appid, uid_t uid,
 
 API int pkgmgrinfo_appinfo_get_appinfo(const char *appid, pkgmgrinfo_appinfo_h *handle)
 {
-       return pkgmgrinfo_appinfo_get_usr_appinfo(appid, GLOBAL_USER, handle);
+       return pkgmgrinfo_appinfo_get_usr_appinfo(appid, _getuid(), handle);
 }
 
 static gpointer __copy_str(gconstpointer src, gpointer data)
@@ -1396,7 +1396,7 @@ API int pkgmgrinfo_appinfo_get_usr_list(pkgmgrinfo_pkginfo_h handle,
 API int pkgmgrinfo_appinfo_get_list(pkgmgrinfo_pkginfo_h handle, pkgmgrinfo_app_component component,
                                                pkgmgrinfo_app_list_cb app_func, void *user_data)
 {
-       return pkgmgrinfo_appinfo_get_usr_list(handle, component, app_func, user_data, GLOBAL_USER);
+       return pkgmgrinfo_appinfo_get_usr_list(handle, component, app_func, user_data, _getuid());
 }
 
 API int pkgmgrinfo_appinfo_get_usr_applist_for_amd(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data)
@@ -1454,7 +1454,7 @@ catch:
 
 API int pkgmgrinfo_appinfo_get_applist_for_amd(pkgmgrinfo_app_list_cb app_func, void *user_data)
 {
-       return pkgmgrinfo_appinfo_get_usr_applist_for_amd(app_func, GLOBAL_USER, user_data);
+       return pkgmgrinfo_appinfo_get_usr_applist_for_amd(app_func, _getuid(), user_data);
 }
 
 API int pkgmgrinfo_appinfo_get_usr_installed_list(pkgmgrinfo_app_list_cb app_func, uid_t uid, void *user_data)
@@ -1470,7 +1470,7 @@ API int pkgmgrinfo_appinfo_get_usr_installed_list(pkgmgrinfo_app_list_cb app_fun
 
 API int pkgmgrinfo_appinfo_get_installed_list(pkgmgrinfo_app_list_cb app_func, void *user_data)
 {
-       return pkgmgrinfo_appinfo_get_usr_installed_list(app_func, GLOBAL_USER, user_data);
+       return pkgmgrinfo_appinfo_get_usr_installed_list(app_func, _getuid(), user_data);
 }
 
 API int pkgmgrinfo_appinfo_get_appid(pkgmgrinfo_appinfo_h handle, char **appid)
@@ -1686,7 +1686,7 @@ API int pkgmgrinfo_appinfo_usr_get_localed_label(const char *appid, const char *
 
 API int pkgmgrinfo_appinfo_get_localed_label(const char *appid, const char *locale, char **label)
 {
-       return pkgmgrinfo_appinfo_usr_get_localed_label(appid, locale, GLOBAL_USER, label);
+       return pkgmgrinfo_appinfo_usr_get_localed_label(appid, locale, _getuid(), label);
 }
 
 static pkgmgrinfo_app_component __appcomponent_convert(const char *comp)
@@ -2181,7 +2181,7 @@ catch:
 
 API int pkgmgrinfo_appinfo_get_datacontrol_info(const char *providerid, const char *type, char **appid, char **access)
 {
-       return pkgmgrinfo_appinfo_usr_get_datacontrol_info(providerid, type, GLOBAL_USER, appid, access);
+       return pkgmgrinfo_appinfo_usr_get_datacontrol_info(providerid, type, _getuid(), appid, access);
 }
 
 API int pkgmgrinfo_appinfo_usr_get_datacontrol_appid(const char *providerid, uid_t uid, char **appid)
@@ -2221,7 +2221,7 @@ catch:
 
 API int pkgmgrinfo_appinfo_get_datacontrol_appid(const char *providerid, char **appid)
 {
-       return pkgmgrinfo_appinfo_usr_get_datacontrol_appid(providerid, GLOBAL_USER, appid);
+       return pkgmgrinfo_appinfo_usr_get_datacontrol_appid(providerid, _getuid(), appid);
 }
 
 API int pkgmgrinfo_appinfo_foreach_permission(pkgmgrinfo_appinfo_h handle,
@@ -2856,7 +2856,7 @@ API int pkgmgrinfo_appinfo_usr_filter_count(pkgmgrinfo_appinfo_filter_h handle,
 
 API int pkgmgrinfo_appinfo_filter_count(pkgmgrinfo_appinfo_filter_h handle, int *count)
 {
-       return pkgmgrinfo_appinfo_usr_filter_count(handle, count, GLOBAL_USER);
+       return pkgmgrinfo_appinfo_usr_filter_count(handle, count, _getuid());
 }
 
 API int pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(
@@ -2875,7 +2875,7 @@ API int pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(
 API int pkgmgrinfo_appinfo_filter_foreach_appinfo(pkgmgrinfo_appinfo_filter_h handle,
                                pkgmgrinfo_app_list_cb app_cb, void * user_data)
 {
-       return pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(handle, app_cb, user_data, GLOBAL_USER);
+       return pkgmgrinfo_appinfo_usr_filter_foreach_appinfo(handle, app_cb, user_data, _getuid());
 }
 
 API int pkgmgrinfo_appinfo_metadata_filter_create(pkgmgrinfo_appinfo_metadata_filter_h *handle)
@@ -2930,7 +2930,7 @@ API int pkgmgrinfo_appinfo_metadata_filter_foreach(
                pkgmgrinfo_app_list_cb app_cb, void *user_data)
 {
        return pkgmgrinfo_appinfo_usr_metadata_filter_foreach(handle, app_cb,
-                       user_data, GLOBAL_USER);
+                       user_data, _getuid());
 }
 
 API int pkgmgrinfo_appinfo_is_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool *status)
index 367a428..9896b46 100644 (file)
@@ -149,7 +149,7 @@ API int pkgmgrinfo_pkginfo_compare_usr_pkg_cert_info(const char *lhs_package_id,
 
 API int pkgmgrinfo_pkginfo_compare_pkg_cert_info(const char *lhs_package_id, const char *rhs_package_id, pkgmgrinfo_cert_compare_result_type_e *compare_result)
 {
-       return pkgmgrinfo_pkginfo_compare_usr_pkg_cert_info(lhs_package_id, rhs_package_id, GLOBAL_USER, compare_result);
+       return pkgmgrinfo_pkginfo_compare_usr_pkg_cert_info(lhs_package_id, rhs_package_id, _getuid(), compare_result);
 }
 
 static int _pkginfo_get_pkgid_from_appid(uid_t uid, const char *appid,
@@ -251,7 +251,7 @@ API int pkgmgrinfo_pkginfo_compare_app_cert_info(const char *lhs_app_id,
                pkgmgrinfo_cert_compare_result_type_e *compare_result)
 {
        return pkgmgrinfo_pkginfo_compare_usr_app_cert_info(lhs_app_id,
-                       rhs_app_id, GLOBAL_USER, compare_result);
+                       rhs_app_id, _getuid(), compare_result);
 }
 
 static int _pkginfo_get_cert(sqlite3 *db, int cert_id[],
@@ -778,6 +778,6 @@ API int pkgmgrinfo_delete_usr_certinfo(const char *pkgid, uid_t uid)
 
 API int pkgmgrinfo_delete_certinfo(const char *pkgid)
 {
-       return pkgmgrinfo_delete_usr_certinfo(pkgid, GLOBAL_USER);
+       return pkgmgrinfo_delete_usr_certinfo(pkgid, _getuid());
 }
 
index 26d0d5a..50eac61 100644 (file)
@@ -254,7 +254,7 @@ API const char *getIconPath(uid_t uid, bool readonly)
 
 API const char *getUserPkgParserDBPath(void)
 {
-       return getUserPkgParserDBPathUID(GLOBAL_USER);
+       return getUserPkgParserDBPathUID(_getuid());
 }
 
 API const char *getUserPkgParserDBPathUID(uid_t uid)
@@ -283,7 +283,7 @@ API const char *getUserPkgParserDBPathUID(uid_t uid)
 
 API const char *getUserPkgCertDBPath(void)
 {
-        return getUserPkgCertDBPathUID(GLOBAL_USER);
+        return getUserPkgCertDBPathUID(_getuid());
 }
 
 API const char *getUserPkgCertDBPathUID(uid_t uid)
@@ -516,7 +516,7 @@ API int pkgmgrinfo_appinfo_set_usr_state_enabled(const char *appid, bool enabled
 
 API int pkgmgrinfo_appinfo_set_state_enabled(const char *appid, bool enabled)
 {
-       return pkgmgrinfo_appinfo_set_usr_state_enabled(appid, enabled, GLOBAL_USER);
+       return pkgmgrinfo_appinfo_set_usr_state_enabled(appid, enabled, _getuid());
 }
 
 API int pkgmgrinfo_appinfo_set_usr_default_label(const char *appid, const char *label, uid_t uid)
@@ -569,7 +569,7 @@ API int pkgmgrinfo_appinfo_set_usr_default_label(const char *appid, const char *
 
 API int pkgmgrinfo_appinfo_set_default_label(const char *appid, const char *label)
 {
-       return pkgmgrinfo_appinfo_set_usr_default_label(appid, label, GLOBAL_USER);
+       return pkgmgrinfo_appinfo_set_usr_default_label(appid, label, _getuid());
 }
 
 API int pkgmgrinfo_appinfo_set_usr_guestmode_visibility(pkgmgrinfo_appinfo_h handle, uid_t uid, bool status)
@@ -611,7 +611,7 @@ API int pkgmgrinfo_appinfo_set_usr_guestmode_visibility(pkgmgrinfo_appinfo_h han
 
 API int pkgmgrinfo_appinfo_set_guestmode_visibility(pkgmgrinfo_appinfo_h handle, bool status)
 {
-       return pkgmgrinfo_appinfo_set_usr_guestmode_visibility(handle, GLOBAL_USER, status);
+       return pkgmgrinfo_appinfo_set_usr_guestmode_visibility(handle, _getuid(), status);
 }
 
 API int pkgmgrinfo_pkginfo_set_usr_installed_storage(const char *pkgid, INSTALL_LOCATION location, uid_t uid)
@@ -662,5 +662,5 @@ catch:
 
 API int pkgmgrinfo_pkginfo_set_installed_storage(const char *pkgid, INSTALL_LOCATION location)
 {
-       return pkgmgrinfo_pkginfo_set_usr_installed_storage(pkgid, location, GLOBAL_USER);
+       return pkgmgrinfo_pkginfo_set_usr_installed_storage(pkgid, location, _getuid());
 }
index 4f7e5ac..0994cfa 100644 (file)
@@ -369,7 +369,7 @@ API int pkgmgrinfo_pkginfo_get_usr_list(pkgmgrinfo_pkg_list_cb pkg_list_cb,
 
 API int pkgmgrinfo_pkginfo_get_list(pkgmgrinfo_pkg_list_cb pkg_list_cb, void *user_data)
 {
-       return pkgmgrinfo_pkginfo_get_usr_list(pkg_list_cb, user_data, GLOBAL_USER);
+       return pkgmgrinfo_pkginfo_get_usr_list(pkg_list_cb, user_data, _getuid());
 }
 
 static int _pkginfo_get_author(sqlite3 *db, const char *pkgid,
@@ -815,7 +815,7 @@ API int pkgmgrinfo_pkginfo_get_usr_pkginfo(const char *pkgid, uid_t uid,
 
 API int pkgmgrinfo_pkginfo_get_pkginfo(const char *pkgid, pkgmgrinfo_pkginfo_h *handle)
 {
-       return pkgmgrinfo_pkginfo_get_usr_pkginfo(pkgid, GLOBAL_USER, handle);
+       return pkgmgrinfo_pkginfo_get_usr_pkginfo(pkgid, _getuid(), handle);
 }
 
 API int pkgmgrinfo_pkginfo_get_pkgname(pkgmgrinfo_pkginfo_h handle, char **pkg_name)
@@ -1895,7 +1895,7 @@ API int pkgmgrinfo_pkginfo_usr_filter_count(pkgmgrinfo_pkginfo_filter_h handle,
 
 API int pkgmgrinfo_pkginfo_filter_count(pkgmgrinfo_pkginfo_filter_h handle, int *count)
 {
-       return pkgmgrinfo_pkginfo_usr_filter_count(handle, count, GLOBAL_USER);
+       return pkgmgrinfo_pkginfo_usr_filter_count(handle, count, _getuid());
 }
 
 API int pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(
@@ -1914,7 +1914,7 @@ API int pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(
 API int pkgmgrinfo_pkginfo_filter_foreach_pkginfo(pkgmgrinfo_pkginfo_filter_h handle,
                                pkgmgrinfo_pkg_list_cb pkg_cb, void *user_data)
 {
-       return pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(handle, pkg_cb, user_data, GLOBAL_USER);
+       return pkgmgrinfo_pkginfo_usr_filter_foreach_pkginfo(handle, pkg_cb, user_data, _getuid());
 }
 
 API int pkgmgrinfo_pkginfo_foreach_privilege(pkgmgrinfo_pkginfo_h handle,