From: Bruce Momjian Date: Mon, 25 Feb 2002 20:07:02 +0000 (+0000) Subject: Fix for PAM error message display: X-Git-Tag: REL7_3~2030 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f75e16d459e65d97ce09bb442f8c859a4f131bd7;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 fc2ec1c72f..8e0e731e48 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.74 2002/02/23 04:17:46 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/auth.c,v 1.75 2002/02/25 20:07:02 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -766,9 +766,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", @@ -778,9 +778,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", @@ -790,9 +791,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", @@ -802,9 +804,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", @@ -814,24 +817,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 */