aboutsummaryrefslogtreecommitdiff
path: root/lib/libpam/modules/pam_ssh/pam_ssh.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2003-09-19 11:33:03 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2003-09-19 11:33:03 +0000
commit24db258f35eced3ea8ed89fc8cfe86cd958f4e10 (patch)
treec48d328f4db97ec13bf4c90272c519591a1f872d /lib/libpam/modules/pam_ssh/pam_ssh.c
parentda26b3794a06948b0b6f6abf65e594ceea73370a (diff)
downloadsrc-24db258f35eced3ea8ed89fc8cfe86cd958f4e10.tar.gz
src-24db258f35eced3ea8ed89fc8cfe86cd958f4e10.zip
Ignore ECHILD from waitpid(2) (our child may have been reaped by the
calling process's SIGCHLD handler) PR: bin/45669
Notes
Notes: svn path=/head/; revision=120231
Diffstat (limited to 'lib/libpam/modules/pam_ssh/pam_ssh.c')
-rw-r--r--lib/libpam/modules/pam_ssh/pam_ssh.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libpam/modules/pam_ssh/pam_ssh.c b/lib/libpam/modules/pam_ssh/pam_ssh.c
index 29c4d5ce0f5a..24f2c2768260 100644
--- a/lib/libpam/modules/pam_ssh/pam_ssh.c
+++ b/lib/libpam/modules/pam_ssh/pam_ssh.c
@@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
#include <sys/wait.h>
+#include <errno.h>
#include <fcntl.h>
#include <paths.h>
#include <pwd.h>
@@ -410,7 +411,7 @@ pam_sm_close_session(pam_handle_t *pamh, int flags __unused,
}
openpam_log(PAM_LOG_DEBUG, "killing ssh agent %d", (int)pid);
if (kill(pid, SIGTERM) == -1 ||
- waitpid(pid, &status, 0) == -1)
+ (waitpid(pid, &status, 0) == -1 && errno != ECHILD))
return (PAM_SYSTEM_ERR);
return (PAM_SUCCESS);
}