print proper message when changing password in PAM.

This commit is contained in:
Nikos Mavrogiannopoulos
2013-07-05 11:52:45 +02:00
parent c55b5a9c68
commit 4b065b8150
+5
View File
@@ -50,6 +50,7 @@ struct pam_ctx_st {
struct pam_conv dc;
coroutine_t cr;
int cr_ret;
unsigned changing; /* whether we are entering a new password */
str_st msg;
unsigned sent_msg;
struct pam_response *replies; /* for safety */
@@ -122,6 +123,7 @@ int pret;
/* change password */
syslog(LOG_INFO, "Password for user '%s' is expired. Attempting to update...", pctx->username);
pctx->changing = 1;
pret = pam_chauthtok(pctx->ph, PAM_CHANGE_EXPIRED_AUTHTOK);
}
@@ -204,6 +206,9 @@ int size;
if (msg != NULL) {
if (pctx->msg.length == 0)
if (pctx->changing)
snprintf(msg, msg_size, "Please enter the new password");
else
snprintf(msg, msg_size, "Please enter your password");
else {
size = MIN(msg_size-1, pctx->msg.length);