Skip to content

Commit

Permalink
pidof was not returning PIDs of programs which were launched
Browse files Browse the repository at this point in the history
using a symbolic link. (ie /tmp/sleep when /tmp/sleep links to /usr/bin/sleep).
This is now fixed as we check both the realpath and symbolic path for processes.
In other words, "pidof /tmp/sleep" and "pidof /usr/bin/sleep" will return
the same PIDs when /tmp/sleep is a symbolic link to /usr/bin/sleep.
  • Loading branch information
Jesse committed Mar 22, 2023
1 parent 86c5d7b commit b70b277
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
5 changes: 5 additions & 0 deletions doc/Changelog
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ sysvinit (3.07) released; urgency=low
* Fixed killall5 so that processes in the omit list are
not sent any signals, including SIGSTOP.
* Fixed usage message for killall5 to be more accurate.
* pidof was not returning PIDs of programs which were launched
using a symbolic link. (ie /tmp/sleep when /tmp/sleep links to /usr/bin/sleep).
This is now fixed as we check both the realpath and symbolic path for processes.
In other words, "pidof /tmp/sleep" and "pidof /usr/bin/sleep" will return
the same PIDs when /tmp/sleep is a symbolic link to /usr/bin/sleep.


sysvinit (3.06) released; urgency=low
Expand Down
6 changes: 6 additions & 0 deletions src/killall5.c
Original file line number Diff line number Diff line change
Expand Up @@ -763,6 +763,11 @@ PIDQ_HEAD *pidof(char *prog)
add_pid_to_q(q, p);
foundone++;
}
else if ( (p->argv0) && (! strcmp(p->argv0, prog) ) )
{
add_pid_to_q(q, p);
foundone++;
}
}
}

Expand Down Expand Up @@ -826,6 +831,7 @@ PIDQ_HEAD *pidof(char *prog)
* as was done in earlier versions of this program, since this
* allows /aaa/foo to match /bbb/foo .
*/

ok |=
(p->argv0 && strcmp(p->argv0, prog) == 0)
|| (p->argv0 && s != prog && strcmp(p->argv0, s) == 0)
Expand Down

0 comments on commit b70b277

Please sign in to comment.