diff options
Diffstat (limited to 'source/n/bsd-finger/bsd-finger-0.17-utmp.patch')
-rw-r--r-- | source/n/bsd-finger/bsd-finger-0.17-utmp.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/source/n/bsd-finger/bsd-finger-0.17-utmp.patch b/source/n/bsd-finger/bsd-finger-0.17-utmp.patch new file mode 100644 index 00000000..ac73f2be --- /dev/null +++ b/source/n/bsd-finger/bsd-finger-0.17-utmp.patch @@ -0,0 +1,40 @@ +--- bsd-finger-0.17/finger/finger.c.utmp 2004-06-15 11:38:24.000000000 -0400 ++++ bsd-finger-0.17/finger/finger.c 2004-06-15 12:22:15.000000000 -0400 +@@ -75,6 +75,8 @@ + #include <limits.h> + #include <time.h> + #include <getopt.h> ++#include <signal.h> ++#include <errno.h> + #include "finger.h" + #ifdef _USAGI + #include "version.h" +@@ -224,6 +226,8 @@ + #ifdef USER_PROCESS + if (uptr->ut_type != USER_PROCESS) continue; + #endif ++ if (kill(uptr->ut_pid, 0) < 0 && errno == ESRCH) ++ continue; + if ((pn = find_person(uptr->ut_name)) == NULL) { + memcpy(name, uptr->ut_name, UT_NAMESIZE); + if ((pw = getpwnam(name)) == NULL) +@@ -331,6 +335,8 @@ + #ifdef USER_PROCESS + if (uptr->ut_type != USER_PROCESS) continue; + #endif ++ if (kill(uptr->ut_pid, 0) < 0 && errno == ESRCH) ++ continue; + if ((pn = find_person(uptr->ut_name)) == NULL) { + continue; + } +--- bsd-finger-0.17/finger/util.c.utmp 2004-06-15 11:38:24.000000000 -0400 ++++ bsd-finger-0.17/finger/util.c 2004-06-15 11:38:24.000000000 -0400 +@@ -71,6 +71,8 @@ + } + snprintf(tbuf, TBUFLEN, "%s/%s", _PATH_DEV, w->tty); + if (stat(tbuf, &sb) < 0) { ++ w->idletime = 0; /* No tty no write, no idle data */ ++ w->writable = 0; + switch (errno) { + case ENOENT: + break; |