Description of problem:
Telnetd can enter the logout(3) call in cleanup()
via a signal handler, when the main program also
enters logout in cleanup(), resulting in self
deadlock as the wtmp_lock is already held by
the process - see bug #143929 .
Version-Release number of selected component (if applicable):
If cleanup entered by main program when SIGCHLD handler
also in cleanup / logout, 100% .
Steps to Reproduce:
See bug #143929
telnetd should not be able to self-deadlock
See attached patch, contributed by email@example.com ,
which fixed the issue.
Created attachment 109730 [details]
Patch to fix cleanup wtmp race condition
The patch is now in telnet-*-0.17-31 submitted to RHEL-4, and
telnet-*-0.17-32 submitted to FC4, and is in FC3 CVS.
Yes, I guess a new bug should be raised against RHEL3 and added to the RHEL3-U5
blockers list to ensure this gets fixed in RHEL3-U5 .
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.