From d06b1172afafd665ec26ba974d38ddb3aea9ff77 Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Tue, 19 May 2015 16:38:14 +0900 Subject: [PATCH] Fix _status_app_is_running_v2 fix __proc_iter_cmdline Change-Id: I1c65f6ea67bde6a652e859cd53fc0a1418bfa0a2 Signed-off-by: Sangyoon Jang --- src/simple_util.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/simple_util.c b/src/simple_util.c index 34af7ca..a583772 100644 --- a/src/simple_util.c +++ b/src/simple_util.c @@ -45,8 +45,8 @@ #define MAX_CMD_BUFSZ 1024 static inline int __read_proc(const char *path, char *buf, int size); -static inline int __find_pid_by_cmdline(const char *dname, - const char *cmdline, void *priv); +static inline int __find_pid_by_cmdline(const char *dname, const char *cmdline, + void *priv, uid_t uid); static inline int __get_pgid_from_stat(int pid); @@ -74,8 +74,8 @@ static inline int __read_proc(const char *path, char *buf, int size) return ret; } -static inline int __find_pid_by_cmdline(const char *dname, - const char *cmdline, void *priv) +static inline int __find_pid_by_cmdline(const char *dname, const char *cmdline, + void *priv, uid_t uid) { char *apppath; int pid = 0; @@ -102,7 +102,6 @@ int __proc_iter_cmdline( char *cmdline; uid_t uid; dp = opendir("/proc"); - struct stat DirStat; if (dp == NULL) { return -1; @@ -115,20 +114,13 @@ int __proc_iter_cmdline( if (!isdigit(dentry->d_name[0])) continue; + uid = __proc_get_usr_bypid(atoi(dentry->d_name)); + snprintf(buf, sizeof(buf), "/proc/%s/cmdline", dentry->d_name); ret = __read_proc(buf, buf, sizeof(buf)); if (ret <= 0) continue; - snprintf(buf, sizeof(buf), "/proc/%s", dentry->d_name); - ret = stat(buf, &DirStat); - if (ret < 0) - uid = (uid_t)-1; - else - uid = DirStat.st_uid; - - - /* support app launched by shell script*/ cmdline = buf; if (strncmp(buf, BINSH_NAME, BINSH_SIZE) == 0) { -- 2.7.4