diff options
author | Michal Schmidt <mschmidt@redhat.com> | 2011-11-17 00:16:22 +0100 |
---|---|---|
committer | Michal Schmidt <mschmidt@redhat.com> | 2011-11-17 00:16:22 +0100 |
commit | 9ba353983adc026b75a503c1381f6e5c8062f3e0 (patch) | |
tree | 178b0bd21d0f12c14331d9e265a2880ee093b8ba /src/execute.c | |
parent | 4d8a7798e7f12c6400495cbc4d0ad57ed20ce90a (diff) |
execute: make setup_pam() return -errno when possible
The only caller currently checks if the result is non-zero,
so nothing changes there.
Diffstat (limited to 'src/execute.c')
-rw-r--r-- | src/execute.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/execute.c b/src/execute.c index 065101431d..2039861782 100644 --- a/src/execute.c +++ b/src/execute.c @@ -716,6 +716,7 @@ static int setup_pam( pam_handle_t *handle = NULL; sigset_t ss, old_ss; int pam_code = PAM_SUCCESS; + int err; char **e = NULL; bool close_session = false; pid_t pam_pid = 0, parent_pid; @@ -835,6 +836,11 @@ static int setup_pam( return 0; fail: + if (pam_code != PAM_SUCCESS) + err = -EPERM; /* PAM errors do not map to errno */ + else + err = -errno; + if (handle) { if (close_session) pam_code = pam_close_session(handle, PAM_DATA_SILENT); @@ -851,7 +857,7 @@ fail: kill(pam_pid, SIGCONT); } - return EXIT_PAM; + return err; } #endif |