summaryrefslogtreecommitdiff
path: root/src/media-thumb-internal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/media-thumb-internal.c')
-rwxr-xr-xsrc/media-thumb-internal.c88
1 files changed, 20 insertions, 68 deletions
diff --git a/src/media-thumb-internal.c b/src/media-thumb-internal.c
index dfa825b..1fd2614 100755
--- a/src/media-thumb-internal.c
+++ b/src/media-thumb-internal.c
@@ -44,8 +44,6 @@
#include <Ecore_Evas.h>
#include <libexif/exif-data.h>
#include <sys/stat.h>
-#include <grp.h>
-#include <pwd.h>
#define MEDIA_THUMB_ROUND_UP_8(num) (((num)+7)&~7)
/* performance enhanced to make thumbnail */
@@ -1573,83 +1571,37 @@ int _media_thumb_video(const char *origin_path,
static char* _media_thumb_mmc_get_path(uid_t uid)
{
int ret = 0;
- char *result_psswd = NULL;
- struct group *grpinfo = NULL;
- if (uid == getuid()) {
- if (THUMB_MMC_PATH != NULL)
- result_psswd = strndup(THUMB_MMC_PATH, strlen(THUMB_MMC_PATH));
- grpinfo = getgrnam("users");
- if (grpinfo == NULL) {
- thumb_err("getgrnam(users) returns NULL !");
- if (result_psswd)
- free(result_psswd);
- return NULL;
- }
+ char *result_path = NULL;
+
+ ret = tzplatform_set_user(uid);
+ if (ret != 0) {
+ thumb_err("Invalid UID[%d]", uid);
+ return NULL;
} else {
- struct passwd *userinfo = getpwuid(uid);
- if (userinfo == NULL) {
- thumb_err("getpwuid(%d) returns NULL !", uid);
- return NULL;
- }
- grpinfo = getgrnam("users");
- if (grpinfo == NULL) {
- thumb_err("getgrnam(users) returns NULL !");
- return NULL;
- }
- // Compare git_t type and not group name
- if (grpinfo->gr_gid != userinfo->pw_gid) {
- thumb_err("UID [%d] does not belong to 'users' group!", uid);
- return NULL;
- }
- ret = asprintf(&result_psswd, "%s/share/media/.thumb/mmc", userinfo->pw_dir);
- if (ret == -1) {
- thumb_err("asprintf failed");
- return NULL;
- }
+ const char *result = tzplatform_mkpath(TZ_USER_SHARE, "media/.thumb/mmc");
+ result_path = strndup(result, strlen(result));
+ tzplatform_reset_user();
}
- return result_psswd;
+ return result_path;
}
static char* _media_thumb_phone_get_path(uid_t uid)
{
int ret = 0;
- char *result_psswd = NULL;
- struct group *grpinfo = NULL;
- if (uid == getuid()) {
- if (THUMB_PHONE_PATH != NULL)
- result_psswd = strndup(THUMB_PHONE_PATH, strlen(THUMB_PHONE_PATH));
- grpinfo = getgrnam("users");
- if (grpinfo == NULL) {
- thumb_err("getgrnam(users) returns NULL !");
- if (result_psswd)
- free(result_psswd);
- return NULL;
- }
+ char *result_path = NULL;
+
+ ret = tzplatform_set_user(uid);
+ if (ret != 0) {
+ thumb_err("Invalid UID[%d]", uid);
+ return NULL;
} else {
- struct passwd *userinfo = getpwuid(uid);
- if (userinfo == NULL) {
- thumb_err("getpwuid(%d) returns NULL !", uid);
- return NULL;
- }
- grpinfo = getgrnam("users");
- if (grpinfo == NULL) {
- thumb_err("getgrnam(users) returns NULL !");
- return NULL;
- }
- // Compare git_t type and not group name
- if (grpinfo->gr_gid != userinfo->pw_gid) {
- thumb_err("UID [%d] does not belong to 'users' group!", uid);
- return NULL;
- }
- ret = asprintf(&result_psswd, "%s/share/media/.thumb/phone", userinfo->pw_dir);
- if (ret == -1) {
- thumb_err("asprintf failed");
- return NULL;
- }
+ const char *result = tzplatform_mkpath(TZ_USER_SHARE, "media/.thumb/phone");
+ result_path = strndup(result, strlen(result));
+ tzplatform_reset_user();
}
- return result_psswd;
+ return result_path;
}
int _media_thumb_get_hash_name(const char *file_full_path,