getty,login: tighten up handling of ctty, pgrp, and tty attr restoring on timeout
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@ -30,14 +30,23 @@ char* FAST_FUNC bb_ask(const int fd, int timeout, const char *prompt)
|
||||
struct sigaction sa, oldsa;
|
||||
struct termios tio, oldtio;
|
||||
|
||||
tcgetattr(fd, &oldtio);
|
||||
fputs(prompt, stdout);
|
||||
fflush_all();
|
||||
tcflush(fd, TCIFLUSH);
|
||||
|
||||
tcgetattr(fd, &oldtio);
|
||||
tio = oldtio;
|
||||
#ifndef IUCLC
|
||||
# define IUCLC 0
|
||||
#endif
|
||||
#if 0
|
||||
/* Switch off UPPERCASE->lowercase conversion (never used since 198x)
|
||||
* and XON/XOFF (why we want to mess with this??)
|
||||
*/
|
||||
# ifndef IUCLC
|
||||
# define IUCLC 0
|
||||
# endif
|
||||
tio.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY);
|
||||
tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP);
|
||||
#endif
|
||||
/* Switch off echo */
|
||||
tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL);
|
||||
tcsetattr(fd, TCSANOW, &tio);
|
||||
|
||||
memset(&sa, 0, sizeof(sa));
|
||||
@ -50,9 +59,6 @@ char* FAST_FUNC bb_ask(const int fd, int timeout, const char *prompt)
|
||||
alarm(timeout);
|
||||
}
|
||||
|
||||
fputs(prompt, stdout);
|
||||
fflush_all();
|
||||
|
||||
if (!passwd)
|
||||
passwd = xmalloc(sizeof_passwd);
|
||||
ret = passwd;
|
||||
|
Reference in New Issue
Block a user