diff options
author | Thorsten Kukuk <kukuk@thkukuk.de> | 2005-08-23 13:44:21 +0000 |
---|---|---|
committer | Thorsten Kukuk <kukuk@thkukuk.de> | 2005-08-23 13:44:21 +0000 |
commit | 48f76ecb25bae6ab86468be253b17de38b55b08d (patch) | |
tree | ad3b365b0f607537b0c46d92f34de4c1392fa57b /libpam/pam_item.c | |
parent | ed5d20953e60da5aefb4214305e11810633567e8 (diff) | |
download | pam-48f76ecb25bae6ab86468be253b17de38b55b08d.tar.gz pam-48f76ecb25bae6ab86468be253b17de38b55b08d.tar.bz2 pam-48f76ecb25bae6ab86468be253b17de38b55b08d.zip |
Relevant BUGIDs: none
Purpose of commit: new feature
Commit summary:
---------------
Change major version number back to "0".
Add more patches from ALT-Linux/OWL:
Diffstat (limited to 'libpam/pam_item.c')
-rw-r--r-- | libpam/pam_item.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libpam/pam_item.c b/libpam/pam_item.c index 96e88247..ff35559e 100644 --- a/libpam/pam_item.c +++ b/libpam/pam_item.c @@ -50,10 +50,12 @@ int pam_set_item (pam_handle_t *pamh, int item_type, const void *item) case PAM_USER: RESET(pamh->user, item); + pamh->former.fail_user = PAM_SUCCESS; break; case PAM_USER_PROMPT: RESET(pamh->prompt, item); + pamh->former.fail_user = PAM_SUCCESS; break; case PAM_TTY: @@ -127,6 +129,7 @@ int pam_set_item (pam_handle_t *pamh, int item_type, const void *item) memcpy(tconv, item, sizeof(struct pam_conv)); _pam_drop(pamh->pam_conversation); pamh->pam_conversation = tconv; + pamh->former.fail_user = PAM_SUCCESS; } } break; @@ -254,6 +257,9 @@ int pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt) return PAM_SUCCESS; } + if (pamh->former.fail_user != PAM_SUCCESS) + return pamh->former.fail_user; + /* will need a prompt */ use_prompt = prompt; if (use_prompt == NULL) { @@ -308,6 +314,7 @@ int pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt) */ D(("pam_get_user: no response provided")); retval = PAM_CONV_ERR; + pamh->former.fail_user = retval; } else if (retval == PAM_SUCCESS) { /* copy the username */ /* * now we set the PAM_USER item -- this was missing from pre.53 @@ -316,7 +323,8 @@ int pam_get_user(pam_handle_t *pamh, const char **user, const char *prompt) */ RESET(pamh->user, resp->resp); *user = pamh->user; - } + } else + pamh->former.fail_user = retval; if (resp) { /* |