diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2020-05-14 08:00:00 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2020-05-15 08:00:00 +0000 |
commit | 6f4a40a1d82592095ea24a64b34774842d7814b3 (patch) | |
tree | 244858e2da3082bd8d86c6db3e125282c292da55 | |
parent | 2243122393dcb7ec5da9708dc9555dc53aaae0cc (diff) | |
download | pam-6f4a40a1d82592095ea24a64b34774842d7814b3.tar.gz pam-6f4a40a1d82592095ea24a64b34774842d7814b3.tar.bz2 pam-6f4a40a1d82592095ea24a64b34774842d7814b3.zip |
pam_usertype: return PAM_INCOMPLETE when pam_get_user returns PAM_CONV_AGAIN
Give the application a chance to handle PAM_INCOMPLETE.
* modules/pam_usertype/pam_usertype.c (pam_usertype_get_uid): Return
PAM_INCOMPLETE instead of PAM_CONV_AGAIN when pam_get_user returns
PAM_CONV_AGAIN.
* modules/pam_usertype/pam_usertype.8.xml (RETURN VALUES): Document it.
-rw-r--r-- | modules/pam_usertype/pam_usertype.8.xml | 10 | ||||
-rw-r--r-- | modules/pam_usertype/pam_usertype.c | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/modules/pam_usertype/pam_usertype.8.xml b/modules/pam_usertype/pam_usertype.8.xml index 1ba4ee71..4eed4eab 100644 --- a/modules/pam_usertype/pam_usertype.8.xml +++ b/modules/pam_usertype/pam_usertype.8.xml @@ -111,6 +111,16 @@ </varlistentry> <varlistentry> + <term>PAM_INCOMPLETE</term> + <listitem> + <para> + The conversation method supplied by the application + returned PAM_CONV_AGAIN. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term>PAM_AUTH_ERR</term> <listitem> <para> diff --git a/modules/pam_usertype/pam_usertype.c b/modules/pam_usertype/pam_usertype.c index eb656c09..dd297150 100644 --- a/modules/pam_usertype/pam_usertype.c +++ b/modules/pam_usertype/pam_usertype.c @@ -129,7 +129,7 @@ pam_usertype_get_uid(struct pam_usertype_opts *opts, if (ret != PAM_SUCCESS) { pam_syslog(pamh, LOG_ERR, "error retrieving user name: %s", pam_strerror(pamh, ret)); - return ret; + return ret == PAM_CONV_AGAIN ? PAM_INCOMPLETE : ret; } pwd = pam_modutil_getpwnam(pamh, username); |