summaryrefslogtreecommitdiff
path: root/libbb/find_pid_by_name.c
diff options
context:
space:
mode:
authorDenys Vlasenko2019-06-15 18:35:39 +0200
committerDenys Vlasenko2019-06-15 18:35:39 +0200
commit3a0eea0887d72f28d13d329be90fe4082cbbd427 (patch)
tree13e78e527233cca6fd6024f3418d983ae6b812ee /libbb/find_pid_by_name.c
parent070aa6174728d35077d98e875717358ccfbf2870 (diff)
downloadbusybox-3a0eea0887d72f28d13d329be90fe4082cbbd427.zip
busybox-3a0eea0887d72f28d13d329be90fe4082cbbd427.tar.gz
pidof: support "pidof /path/to/binary" case
function old new delta find_pid_by_name 230 227 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/find_pid_by_name.c')
-rw-r--r--libbb/find_pid_by_name.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libbb/find_pid_by_name.c b/libbb/find_pid_by_name.c
index abbf293..fe13f72 100644
--- a/libbb/find_pid_by_name.c
+++ b/libbb/find_pid_by_name.c
@@ -90,7 +90,11 @@ pid_t* FAST_FUNC find_pid_by_name(const char *procName)
/* or we require argv0 to match (essential for matching reexeced /proc/self/exe)*/
|| (p->argv0 && strcmp(bb_basename(p->argv0), procName) == 0)
/* or we require /proc/PID/exe link to match */
- || (p->exe && strcmp(bb_basename(p->exe), procName) == 0)
+ || (p->exe && strcmp(
+ procName[0] == '/' ? p->exe /* support "pidof /path/to/binary" case too */
+ : bb_basename(p->exe),
+ procName
+ ) == 0)
) {
pidList = xrealloc_vector(pidList, 2, i);
pidList[i++] = p->pid;