--- sudo-1.6.7p2/tgetpass.c.orig 2002-12-13 21:20:34 +0300 +++ sudo-1.6.7p2/tgetpass.c 2003-04-09 16:12:49 +0400 @@ -147,11 +147,14 @@ tgetpass(prompt, timeout, flags) char *pass; restart: - /* Open /dev/tty for reading/writing if possible else use stdin/stderr. */ - if ((flags & TGP_STDIN) || - (input = output = open(_PATH_TTY, O_RDWR|O_NOCTTY)) == -1) { + /* Open /dev/tty for reading/writing unless requested to use stdin/stderr. */ + if (flags & TGP_STDIN) { input = STDIN_FILENO; output = STDERR_FILENO; + } else if ((input = output = open(_PATH_TTY, O_RDWR|O_NOCTTY)) == -1) { + log_error(NO_EXIT|NO_MAIL, "must be run from a terminal"); + buf[0] = '\0'; + return buf; } /*