- add new applet mkpasswd(1)
function old new delta bb_ask - 355 +355 mkpasswd_main - 296 +296 .rodata 121746 121847 +101 packed_usage 24632 24689 +57 static.methods - 21 +21 gmatch 229 248 +19 bb_ask_stdin - 11 +11 applet_names 1949 1958 +9 applet_main 1172 1176 +4 sulogin_main 503 505 +2 applet_nameofs 586 588 +2 sha256_hash 329 327 -2 correct_password 208 206 -2 parse_command 1442 1439 -3 get_cred_or_die 145 141 -4 passwd_main 1054 1044 -10 bb_askpass 348 - -348 ------------------------------------------------------------------------------ (add/remove: 4/1 grow/shrink: 7/5 up/down: 877/-369) Total: 508 bytes
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user