Accepted patch from Mark Hindle which avoids clearing realpath information

in pidof when trying to find matching executables.
This commit is contained in:
Jesse 2023-03-29 10:34:45 -03:00
parent e7f4361bde
commit 93da64d133
3 changed files with 4 additions and 2 deletions

@ -8,6 +8,8 @@ sysvinit (3.07) released; urgency=low
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.
* Fixed memory initialization error in pidof. Fix provided by Markus Fischer.
* Accepted patch from Mark Hindle which avoids clearing realpath information
in pidof when trying to find matching executables.
sysvinit (3.06) released; urgency=low

@ -94,7 +94,7 @@ that it returns PIDs of running programs that happen to have the same name
as the program you're after but are actually other programs. Note
that the executable name of running processes is calculated with
.BR readlink (2),
so symbolic links to executables will also match. However, symbolic links to symbolic links will not match.
so symbolic links to executables will also match.
.PP
Zombie processes or processes in disk sleep (states Z and D, respectively)
are ignored, as attempts to access the stats of these will sometimes fail.

@ -740,8 +740,8 @@ PIDQ_HEAD *pidof(char *prog)
return NULL;
/* Try to stat the executable. */
memset(real_path, 0, sizeof(real_path));
if ( (prog[0] == '/') && ( realpath(prog, real_path) ) ) {
memset(&real_path[0], 0, sizeof(real_path));
dostat++;
}