- 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:
Bernhard Reutner-Fischer
2008-12-03 18:48:39 +00:00
parent 81c3a1d0b2
commit 82b1429966
11 changed files with 116 additions and 16 deletions

View File

@ -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