From 8ce7dfa341fa969ba08438f97b0d875dbb78d75d Mon Sep 17 00:00:00 2001 From: Ludwig Nussel Date: Tue, 5 Jun 2012 15:31:24 +0200 Subject: [PATCH] su: preserve errno in cleanup_pam() Signed-off-by: Ludwig Nussel --- login-utils/su.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/login-utils/su.c b/login-utils/su.c index 944d6558e8..0f535b9b72 100644 --- a/login-utils/su.c +++ b/login-utils/su.c @@ -153,6 +153,8 @@ static struct pam_conv conv = static void cleanup_pam (int retcode) { + int saved_errno = errno; + if (_pam_session_opened) pam_close_session (pamh, 0); @@ -160,6 +162,8 @@ cleanup_pam (int retcode) pam_setcred (pamh, PAM_DELETE_CRED | PAM_SILENT); pam_end(pamh, retcode); + + errno = saved_errno; } /* Signal handler for parent process. */ -- 2.47.3