From: Rob Landley Date: Mon, 4 Sep 2006 18:59:39 +0000 (-0000) Subject: Patch from Natanael Copa to make start-stop-daemon just use readlink and X-Git-Tag: 1_4_0~752 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8cedabaee09937809802e1791cbc6caffdbd3024;p=oweals%2Fbusybox.git Patch from Natanael Copa to make start-stop-daemon just use readlink and strcmp to check if a program is already running. --- diff --git a/debianutils/start_stop_daemon.c b/debianutils/start_stop_daemon.c index 9c9b5fe77..e0c8f2d9b 100644 --- a/debianutils/start_stop_daemon.c +++ b/debianutils/start_stop_daemon.c @@ -39,16 +39,17 @@ static inline void push(pid_t pid) static int pid_is_exec(pid_t pid, const char *name) { - char buf[32]; - struct stat sb, exec_stat; - - if (name) - xstat(name, &exec_stat); + char buf[32], *execbuf; + int equal; sprintf(buf, "/proc/%d/exe", pid); - if (stat(buf, &sb) != 0) - return 0; - return (sb.st_dev == exec_stat.st_dev && sb.st_ino == exec_stat.st_ino); + execbuf = xstrdup(name); + readlink(buf, execbuf, strlen(name)+1); + + equal = ! strcmp(execbuf, name); + if (ENABLE_FEATURE_CLEAN_UP) + free(execbuf); + return equal; } static int pid_is_user(int pid, int uid)