diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | auth-pam.c | 6 |
2 files changed, 8 insertions, 4 deletions
@@ -1,3 +1,7 @@ | |||
1 | 20040711 | ||
2 | - (dtucker) [auth-pam.c] Check for zero from waitpid() too, which allows | ||
3 | the monitor to properly clean up the PAM thread (Debian bug #252676). | ||
4 | |||
1 | 20040709 | 5 | 20040709 |
2 | - (tim) [contrib/cygwin/README] add minires-devel requirement. Patch from | 6 | - (tim) [contrib/cygwin/README] add minires-devel requirement. Patch from |
3 | vinschen AT redhat.com | 7 | vinschen AT redhat.com |
@@ -1499,4 +1503,4 @@ | |||
1499 | - (djm) Trim deprecated options from INSTALL. Mention UsePAM | 1503 | - (djm) Trim deprecated options from INSTALL. Mention UsePAM |
1500 | - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu | 1504 | - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu |
1501 | 1505 | ||
1502 | $Id: ChangeLog,v 1.3472 2004/07/09 17:45:26 tim Exp $ | 1506 | $Id: ChangeLog,v 1.3473 2004/07/11 06:54:08 dtucker Exp $ |
diff --git a/auth-pam.c b/auth-pam.c index 36a719fbb..5f4200f6f 100644 --- a/auth-pam.c +++ b/auth-pam.c | |||
@@ -47,7 +47,7 @@ | |||
47 | 47 | ||
48 | /* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */ | 48 | /* Based on $FreeBSD: src/crypto/openssh/auth2-pam-freebsd.c,v 1.11 2003/03/31 13:48:18 des Exp $ */ |
49 | #include "includes.h" | 49 | #include "includes.h" |
50 | RCSID("$Id: auth-pam.c,v 1.110 2004/07/01 04:00:15 dtucker Exp $"); | 50 | RCSID("$Id: auth-pam.c,v 1.111 2004/07/11 06:54:08 dtucker Exp $"); |
51 | 51 | ||
52 | #ifdef USE_PAM | 52 | #ifdef USE_PAM |
53 | #if defined(HAVE_SECURITY_PAM_APPL_H) | 53 | #if defined(HAVE_SECURITY_PAM_APPL_H) |
@@ -113,11 +113,11 @@ sshpam_sigchld_handler(int sig) | |||
113 | if (cleanup_ctxt == NULL) | 113 | if (cleanup_ctxt == NULL) |
114 | return; /* handler called after PAM cleanup, shouldn't happen */ | 114 | return; /* handler called after PAM cleanup, shouldn't happen */ |
115 | if (waitpid(cleanup_ctxt->pam_thread, &sshpam_thread_status, WNOHANG) | 115 | if (waitpid(cleanup_ctxt->pam_thread, &sshpam_thread_status, WNOHANG) |
116 | == -1) { | 116 | <= 0) { |
117 | /* PAM thread has not exitted, privsep slave must have */ | 117 | /* PAM thread has not exitted, privsep slave must have */ |
118 | kill(cleanup_ctxt->pam_thread, SIGTERM); | 118 | kill(cleanup_ctxt->pam_thread, SIGTERM); |
119 | if (waitpid(cleanup_ctxt->pam_thread, &sshpam_thread_status, 0) | 119 | if (waitpid(cleanup_ctxt->pam_thread, &sshpam_thread_status, 0) |
120 | == -1) | 120 | <= 0) |
121 | return; /* could not wait */ | 121 | return; /* could not wait */ |
122 | } | 122 | } |
123 | if (WIFSIGNALED(sshpam_thread_status) && | 123 | if (WIFSIGNALED(sshpam_thread_status) && |