--- sudo-1.6.8p5/auth/pam.c.orig 2005-05-15 09:08:15.923873776 -0400 +++ sudo-1.6.8p5/auth/pam.c 2005-05-15 09:35:12.238156656 -0400 @@ -225,9 +225,11 @@ case PAM_PROMPT_ECHO_ON: SET(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'))) + /* Only override PAM prompt if it matches /^Password: ?/ or if + * the user specified a password via -p or $SUDO_PROMPT */ + if (!user_prompt && (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_passwd_timeout * 60, flags);