aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 abbf293e8..fe13f7211 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;