From: Bruce Momjian Date: Mon, 25 Feb 2002 20:07:33 +0000 (+0000) Subject: Fix for PAM error message display: X-Git-Tag: REL7_2_1~23 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5eab1f1bcda11837eb259e60089f8f935df12f22;p=postgresql Fix for PAM error message display: > and that the right fix is to make each of the subsequent calls be in > this same pattern, not to try to emulate their nonsensical style. Dominic J. Eidson --- diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index df9091e9b4..9c04e840a3 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.72 2001/11/05 17:46:25 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.72.2.1 2002/02/25 20:07:33 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -752,9 +752,9 @@ CheckPAMAuth(Port *port, char *user, char *password) return STATUS_ERROR; } - if (retval == PAM_SUCCESS) - retval = pam_set_item(pamh, PAM_USER, user); - else + retval = pam_set_item(pamh, PAM_USER, user); + + if (retval != PAM_SUCCESS) { snprintf(PQerrormsg, PQERRORMSG_LENGTH, "CheckPAMAuth: pam_set_item(PAM_USER) failed: '%s'\n", @@ -764,9 +764,10 @@ CheckPAMAuth(Port *port, char *user, char *password) pam_passwd = NULL; /* Unset pam_passwd */ return STATUS_ERROR; } - if (retval == PAM_SUCCESS) - retval = pam_set_item(pamh, PAM_CONV, &pam_passw_conv); - else + + retval = pam_set_item(pamh, PAM_CONV, &pam_passw_conv); + + if (retval != PAM_SUCCESS) { snprintf(PQerrormsg, PQERRORMSG_LENGTH, "CheckPAMAuth: pam_set_item(PAM_CONV) failed: '%s'\n", @@ -776,9 +777,10 @@ CheckPAMAuth(Port *port, char *user, char *password) pam_passwd = NULL; /* Unset pam_passwd */ return STATUS_ERROR; } - if (retval == PAM_SUCCESS) - retval = pam_authenticate(pamh, 0); - else + + retval = pam_authenticate(pamh, 0); + + if (retval != PAM_SUCCESS) { snprintf(PQerrormsg, PQERRORMSG_LENGTH, "CheckPAMAuth: pam_authenticate failed: '%s'\n", @@ -788,9 +790,10 @@ CheckPAMAuth(Port *port, char *user, char *password) pam_passwd = NULL; /* Unset pam_passwd */ return STATUS_ERROR; } - if (retval == PAM_SUCCESS) - retval = pam_acct_mgmt(pamh, 0); - else + + retval = pam_acct_mgmt(pamh, 0); + + if (retval != PAM_SUCCESS) { snprintf(PQerrormsg, PQERRORMSG_LENGTH, "CheckPAMAuth: pam_acct_mgmt failed: '%s'\n", @@ -800,24 +803,21 @@ CheckPAMAuth(Port *port, char *user, char *password) pam_passwd = NULL; /* Unset pam_passwd */ return STATUS_ERROR; } - if (retval == PAM_SUCCESS) - { - retval = pam_end(pamh, retval); - if (retval != PAM_SUCCESS) - { - snprintf(PQerrormsg, PQERRORMSG_LENGTH, - "CheckPAMAuth: Failed to release PAM authenticator: '%s'\n", - pam_strerror(pamh, retval)); - fputs(PQerrormsg, stderr); - pqdebug("%s", PQerrormsg); - } - pam_passwd = NULL; /* Unset pam_passwd */ + retval = pam_end(pamh, retval); - return (retval == PAM_SUCCESS ? STATUS_OK : STATUS_ERROR); + if (retval != PAM_SUCCESS) + { + snprintf(PQerrormsg, PQERRORMSG_LENGTH, + "CheckPAMAuth: Failed to release PAM authenticator: '%s'\n", + pam_strerror(pamh, retval)); + fputs(PQerrormsg, stderr); + pqdebug("%s", PQerrormsg); } - else - return STATUS_ERROR; + + pam_passwd = NULL; /* Unset pam_passwd */ + + return (retval == PAM_SUCCESS ? STATUS_OK : STATUS_ERROR); } #endif /* USE_PAM */