From 337bbad15fb6601df11bb1a88a4e6d1589cc8323 Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Wed, 25 Jan 2017 16:23:48 +0900 Subject: [PATCH] Update get_path functions use tzplatform API instead of grp(pwd) API Change-Id: Id307b1a3279d606e5ca7ccb8972c5b5138b8bf7a Signed-off-by: Minje Ahn --- packaging/libmedia-service.spec | 2 +- src/common/media-svc-db-utils.c | 45 ++++---------- src/common/media-svc-media.c | 45 ++++---------- src/common/media-svc-util.c | 131 ++++++++++------------------------------ 4 files changed, 56 insertions(+), 167 deletions(-) diff --git a/packaging/libmedia-service.spec b/packaging/libmedia-service.spec index 1ffa6ef..e936cf7 100644 --- a/packaging/libmedia-service.spec +++ b/packaging/libmedia-service.spec @@ -1,6 +1,6 @@ Name: libmedia-service Summary: Media information service library for multimedia applications -Version: 0.2.92 +Version: 0.2.93 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 and public domain diff --git a/src/common/media-svc-db-utils.c b/src/common/media-svc-db-utils.c index d74c14a..0a839de 100755 --- a/src/common/media-svc-db-utils.c +++ b/src/common/media-svc-db-utils.c @@ -24,8 +24,6 @@ #include #include #include -#include -#include #include "media-svc-env.h" #include "media-svc-debug.h" #include "media-svc-util.h" @@ -43,41 +41,20 @@ static GSList *column_list[MEDIA_SVC_DB_LIST_MAX]; char *_media_svc_get_path(uid_t uid) { - int len = 0; - char *result_passwd = NULL; - struct group *grpinfo = NULL; - if (uid == getuid()) { - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - len = strlen(MEDIA_ROOT_PATH_INTERNAL); - if (len > 0) - result_passwd = strndup(MEDIA_ROOT_PATH_INTERNAL, len); + int ret = 0; + char *result_path = NULL; + + ret = tzplatform_set_user(uid); + if (ret != 0) { + media_svc_error("Invalid UID[%d]", uid); + return NULL; } else { - char passwd_str[MEDIA_SVC_PATHNAME_SIZE] = {0, }; - struct passwd *userinfo = getpwuid(uid); - if (userinfo == NULL) { - media_svc_error("getpwuid(%d) returns NULL !", uid); - return NULL; - } - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - /* Compare git_t type and not group name */ - if (grpinfo->gr_gid != userinfo->pw_gid) { - media_svc_error("UID [%d] does not belong to 'users' group!", uid); - return NULL; - } - len = snprintf(passwd_str, sizeof(passwd_str), "%s/%s", userinfo->pw_dir, MEDIA_CONTENT_PATH); - if (len > 0) - result_passwd = strndup(passwd_str, len); + const char *result = tzplatform_getenv(TZ_USER_CONTENT); + result_path = strndup(result, strlen(result)); + tzplatform_reset_user(); } - return result_passwd; + return result_path; } int __media_svc_add_table_info(const char *name, const char *trigger_name, const char *event_table, const char *action_table, const char *view_name) diff --git a/src/common/media-svc-media.c b/src/common/media-svc-media.c index a3c961b..10332bf 100755 --- a/src/common/media-svc-media.c +++ b/src/common/media-svc-media.c @@ -22,8 +22,6 @@ #include #include #include -#include -#include #include #include "media-svc-media.h" #include "media-svc-media-folder.h" @@ -178,41 +176,20 @@ int _media_svc_count_record_with_path(sqlite3 *handle, const char *storage_id, c char *_media_svc_get_thumb_default_path(uid_t uid) { - int len = 0; - char *result_passwd = NULL; - struct group *grpinfo = NULL; - if (uid == getuid()) { - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - len = strlen(MEDIA_SVC_THUMB_DEFAULT_PATH); - if (len > 0) - result_passwd = strndup(MEDIA_SVC_THUMB_DEFAULT_PATH, len); + int ret = 0; + char *result_path = NULL; + + ret = tzplatform_set_user(uid); + if (ret != 0) { + media_svc_error("Invalid UID[%d]", uid); + return NULL; } else { - char passwd_str[MEDIA_SVC_PATHNAME_SIZE] = {0, }; - struct passwd *userinfo = getpwuid(uid); - if (userinfo == NULL) { - media_svc_error("getpwuid(%d) returns NULL !", uid); - return NULL; - } - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - /* Compare git_t type and not group name */ - if (grpinfo->gr_gid != userinfo->pw_gid) { - media_svc_error("UID [%d] does not belong to 'users' group!", uid); - return NULL; - } - len = snprintf(passwd_str, sizeof(passwd_str), "%s/share/media/.thumb/thumb_default.png", userinfo->pw_dir); - if (len > 0) - result_passwd = strndup(passwd_str, len); + const char *result = tzplatform_mkpath(TZ_USER_SHARE, "media/.thumb/thumb_default.png"); + result_path = strndup(result, strlen(result)); + tzplatform_reset_user(); } - return result_passwd; + return result_path; } int _media_svc_insert_item_with_data(sqlite3 *handle, const char *storage_id, media_svc_content_info_s *content_info, int is_burst, bool stack_query, uid_t uid) diff --git a/src/common/media-svc-util.c b/src/common/media-svc-util.c index 41758c3..2ad040d 100755 --- a/src/common/media-svc-util.c +++ b/src/common/media-svc-util.c @@ -44,8 +44,6 @@ #include #include #include -#include -#include #include "media-util-err.h" #include "media-svc-util.h" #include "media-svc-db-utils.h" @@ -581,41 +579,20 @@ static int __media_svc_get_location_value(MMHandleType tag, double *longitude, d static char *__media_svc_get_thumb_path(uid_t uid) { - int len = 0; - char *result_passwd = NULL; - struct group *grpinfo = NULL; - if (uid == getuid()) { - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - len = strlen(MEDIA_SVC_THUMB_PATH_PREFIX); - if (len > 0) - result_passwd = strndup(MEDIA_SVC_THUMB_PATH_PREFIX, len); + int ret = 0; + char *result_path = NULL; + + ret = tzplatform_set_user(uid); + if (ret != 0) { + media_svc_error("Invalid UID[%d]", uid); + return NULL; } else { - char passwd_str[MEDIA_SVC_PATHNAME_SIZE] = {0, }; - struct passwd *userinfo = getpwuid(uid); - if (userinfo == NULL) { - media_svc_error("getpwuid(%d) returns NULL !", uid); - return NULL; - } - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - /* Compare git_t type and not group name */ - if (grpinfo->gr_gid != userinfo->pw_gid) { - media_svc_error("UID [%d] does not belong to 'users' group!", uid); - return NULL; - } - len = snprintf(passwd_str, sizeof(passwd_str), "%s/share/media/.thumb", userinfo->pw_dir); - if (len > 0) - result_passwd = strndup(passwd_str, len); + const char *result = tzplatform_mkpath(TZ_USER_SHARE, "media/.thumb"); + result_path = strndup(result, strlen(result)); + tzplatform_reset_user(); } - return result_passwd; + return result_path; } static int __media_svc_encode_jpeg(unsigned char *src, unsigned long width, unsigned long height, image_util_colorspace_e colorspace, int quality, unsigned char **dst, unsigned long long *dst_size) @@ -995,80 +972,38 @@ int _media_svc_remove_all_files_in_dir(const char *dir_path) char *_media_svc_get_thumb_internal_path(uid_t uid) { - int len = 0; - char *result_passwd = NULL; - struct group *grpinfo = NULL; - if (uid == getuid()) { - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - len = strlen(MEDIA_SVC_THUMB_INTERNAL_PATH); - if (len > 0) - result_passwd = strndup(MEDIA_SVC_THUMB_INTERNAL_PATH, len); + int ret = 0; + char *result_path = NULL; + + ret = tzplatform_set_user(uid); + if (ret != 0) { + media_svc_error("Invalid UID[%d]", uid); + return NULL; } else { - char passwd_str[MEDIA_SVC_PATHNAME_SIZE] = {0, }; - struct passwd *userinfo = getpwuid(uid); - if (userinfo == NULL) { - media_svc_error("getpwuid(%d) returns NULL !", uid); - return NULL; - } - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - /* Compare git_t type and not group name */ - if (grpinfo->gr_gid != userinfo->pw_gid) { - media_svc_error("UID [%d] does not belong to 'users' group!", uid); - return NULL; - } - len = snprintf(passwd_str, sizeof(passwd_str), "%s/share/media/.thumb/phone", userinfo->pw_dir); - if (len > 0) - result_passwd = strndup(passwd_str, len); + const char *result = tzplatform_mkpath(TZ_USER_SHARE, "media/.thumb/phone"); + result_path = strndup(result, strlen(result)); + tzplatform_reset_user(); } - return result_passwd; + return result_path; } char *_media_svc_get_thumb_external_path(uid_t uid) { - int len = 0; - char *result_passwd = NULL; - struct group *grpinfo = NULL; - if (uid == getuid()) { - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - len = strlen(MEDIA_SVC_THUMB_EXTERNAL_PATH); - if (len > 0) - result_passwd = strndup(MEDIA_SVC_THUMB_EXTERNAL_PATH, len); + int ret = 0; + char *result_path = NULL; + + ret = tzplatform_set_user(uid); + if (ret != 0) { + media_svc_error("Invalid UID[%d]", uid); + return NULL; } else { - char passwd_str[MEDIA_SVC_PATHNAME_SIZE] = {0, }; - struct passwd *userinfo = getpwuid(uid); - if (userinfo == NULL) { - media_svc_error("getpwuid(%d) returns NULL !", uid); - return NULL; - } - grpinfo = getgrnam("users"); - if (grpinfo == NULL) { - media_svc_error("getgrnam(users) returns NULL !"); - return NULL; - } - /* Compare git_t type and not group name */ - if (grpinfo->gr_gid != userinfo->pw_gid) { - media_svc_error("UID [%d] does not belong to 'users' group!", uid); - return NULL; - } - len = snprintf(passwd_str, sizeof(passwd_str), "%s/share/media/.thumb/mmc", userinfo->pw_dir); - if (len > 0) - result_passwd = strndup(passwd_str, len); + const char *result = tzplatform_mkpath(TZ_USER_SHARE, "media/.thumb/mmc"); + result_path = strndup(result, strlen(result)); + tzplatform_reset_user(); } - return result_passwd; + return result_path; } static int __media_svc_check_thumb_dir(const char *thumb_dir) -- 2.7.4