diff options
| -rw-r--r-- | lib/libpam/modules/pam_ssh/pam_ssh.c | 3 |
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 29c4d5ce0f5a4..24f2c27682606 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); } |
