diff options
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/bb_askpass.c | 12 | ||||
-rw-r--r-- | libbb/correct_password.c | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/libbb/bb_askpass.c b/libbb/bb_askpass.c index c97649733..c0dcf0c5f 100644 --- a/libbb/bb_askpass.c +++ b/libbb/bb_askpass.c @@ -15,7 +15,11 @@ static void askpass_timeout(int UNUSED_PARAM ignore) { } -char* FAST_FUNC bb_askpass(int timeout, const char *prompt) +char* FAST_FUNC bb_ask_stdin(const char *prompt) +{ + return bb_ask(STDIN_FILENO, 0, prompt); +} +char* FAST_FUNC bb_ask(const int fd, int timeout, const char *prompt) { /* Was static char[BIGNUM] */ enum { sizeof_passwd = 128 }; @@ -30,8 +34,8 @@ char* FAST_FUNC bb_askpass(int timeout, const char *prompt) passwd = xmalloc(sizeof_passwd); memset(passwd, 0, sizeof_passwd); - tcgetattr(STDIN_FILENO, &oldtio); - tcflush(STDIN_FILENO, TCIFLUSH); + tcgetattr(fd, &oldtio); + tcflush(fd, TCIFLUSH); tio = oldtio; tio.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY); tio.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP); @@ -52,7 +56,7 @@ char* FAST_FUNC bb_askpass(int timeout, const char *prompt) ret = NULL; /* On timeout or Ctrl-C, read will hopefully be interrupted, * and we return NULL */ - if (read(STDIN_FILENO, passwd, sizeof_passwd - 1) > 0) { + if (read(fd, passwd, sizeof_passwd - 1) > 0) { ret = passwd; i = 0; /* Last byte is guaranteed to be 0 diff --git a/libbb/correct_password.c b/libbb/correct_password.c index 255b04870..6301589e6 100644 --- a/libbb/correct_password.c +++ b/libbb/correct_password.c @@ -68,7 +68,7 @@ int FAST_FUNC correct_password(const struct passwd *pw) return 1; fake_it: - unencrypted = bb_askpass(0, "Password: "); + unencrypted = bb_ask_stdin("Password: "); if (!unencrypted) { return 0; } |