From d281ff77e29c4b4dec3a5cc90c742f5c76fb4186 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Sat, 25 Jun 2005 18:29:17 +0000 Subject: [PATCH] Fix call to pam_end() when pam_open_session() fails. --- auth/pam.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/auth/pam.c b/auth/pam.c index 7f88bf3ec..bace4891a 100644 --- a/auth/pam.c +++ b/auth/pam.c @@ -175,6 +175,8 @@ int pam_prep_user(pw) struct passwd *pw; { + int eval; + if (pamh == NULL) pam_init(pw, NULL, NULL); @@ -201,8 +203,8 @@ pam_prep_user(pw) * can at least cause pam_limits to be run by opening and then * immediately closing the session. */ - if (pam_open_session(pamh, 0) != PAM_SUCCESS) { - (void) pam_end(pamh, error); + if ((eval = pam_open_session(pamh, 0)) != PAM_SUCCESS) { + (void) pam_end(pamh, eval | PAM_DATA_SILENT); return(AUTH_FAILURE); } (void) pam_close_session(pamh, 0); -- 2.50.1