diff options
author | Todd C. Miller <Todd.Miller@courtesan.com> | 2002-12-13 16:33:26 +0000 |
---|---|---|
committer | Todd C. Miller <Todd.Miller@courtesan.com> | 2002-12-13 16:33:26 +0000 |
commit | 37500ab9be5c4e6003b56f01dfd73f9f75f750cf (patch) | |
tree | 4ce395a54cb99b3980291ac34cef8870fdfbf953 /auth | |
parent | 1ffe94779cbe3e2ccc19c5a6ec0a6601d29a816e (diff) | |
download | sudo-37500ab9be5c4e6003b56f01dfd73f9f75f750cf.tar.gz |
Keep a local copy of tgetpass_flags so we don't add in TGP_ECHO to
the global copy. Problem noted by Peter Pentchev.
Diffstat (limited to 'auth')
-rw-r--r-- | auth/pam.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/auth/pam.c b/auth/pam.c index 9496063b9..6b63f23cd 100644 --- a/auth/pam.c +++ b/auth/pam.c @@ -205,7 +205,7 @@ sudo_conv(num_msg, msg, response, appdata_ptr) PAM_CONST struct pam_message *pm; const char *p = def_prompt; volatile char *pass; - int n; + int n, flags; extern int nil_pw; if ((*response = malloc(num_msg * sizeof(struct pam_response))) == NULL) @@ -213,17 +213,17 @@ sudo_conv(num_msg, msg, response, appdata_ptr) (void) memset(*response, 0, num_msg * sizeof(struct pam_response)); for (pr = *response, pm = *msg, n = num_msg; n--; pr++, pm++) { + flags = tgetpass_flags; switch (pm->msg_style) { case PAM_PROMPT_ECHO_ON: - tgetpass_flags |= TGP_ECHO; + flags |= TGP_ECHO; case PAM_PROMPT_ECHO_OFF: /* Only override PAM prompt if it matches /^Password: ?/ */ if (strncmp(pm->msg, "Password:", 9) || (pm->msg[9] != '\0' && (pm->msg[9] != ' ' || pm->msg[10] != '\0'))) p = pm->msg; /* Read the password. */ - pass = tgetpass(p, def_ival(I_PASSWD_TIMEOUT) * 60, - tgetpass_flags); + pass = tgetpass(p, def_ival(I_PASSWD_TIMEOUT) * 60, flags); pr->resp = estrdup(pass ? pass : ""); if (*pr->resp == '\0') nil_pw = 1; /* empty password */ |