mirror of
https://github.com/sheumann/telnetd.git
synced 2025-04-13 15:37:09 +00:00
Don't risk catching a signal while handling a signal for a dying child, as we
can then end up not properly clearing wtmp/utmp entries. PR: bin/37934 Submitted by: Sandeep Kumar <skumar@juniper.net> Reviewed by: markm MFC after: 2 weeks git-svn-id: http://svn0.us-east.freebsd.org/base/head/contrib/telnet@97341 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
This commit is contained in:
parent
0a0dabb57b
commit
e151b0ff25
@ -1317,8 +1317,16 @@ void
|
||||
cleanup(int sig __unused)
|
||||
{
|
||||
char *p;
|
||||
sigset_t mask;
|
||||
|
||||
p = line + sizeof(_PATH_DEV) - 1;
|
||||
/*
|
||||
* Block all signals before clearing the utmp entry. We don't want to
|
||||
* be called again after calling logout() and then not add the wtmp
|
||||
* entry because of not finding the corresponding entry in utmp.
|
||||
*/
|
||||
sigfillset(&mask);
|
||||
sigprocmask(SIG_SETMASK, &mask, NULL);
|
||||
if (logout(p))
|
||||
logwtmp(p, "", "");
|
||||
(void)chmod(line, 0666);
|
||||
|
Loading…
x
Reference in New Issue
Block a user