From 17058a06c4333fc0c492c168c8a971ebd0fd5a5a Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sat, 7 Apr 2018 15:50:30 +0200 Subject: libbb: switch bb_ask_noecho() to "mallocing" string return API function old new delta bb_ask_noecho 313 330 +17 get_cred_or_die 125 115 -10 passwd_main 995 958 -37 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 17/-47) Total: -30 bytes Signed-off-by: Denys Vlasenko --- loginutils/cryptpw.c | 2 +- loginutils/passwd.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) (limited to 'loginutils') diff --git a/loginutils/cryptpw.c b/loginutils/cryptpw.c index 3ca7eda..fbb7f05 100644 --- a/loginutils/cryptpw.c +++ b/loginutils/cryptpw.c @@ -133,7 +133,7 @@ int cryptpw_main(int argc UNUSED_PARAM, char **argv) if (!password) { /* Only mkpasswd, and only from tty, prompts. * Otherwise it is a plain read. */ - password = (ENABLE_MKPASSWD && isatty(STDIN_FILENO) && applet_name[0] == 'm') + password = (ENABLE_MKPASSWD && applet_name[0] == 'm' && isatty(STDIN_FILENO)) ? bb_ask_noecho_stdin("Password: ") : xmalloc_fgetline(stdin) ; diff --git a/loginutils/passwd.c b/loginutils/passwd.c index 02303b5..d0408d8 100644 --- a/loginutils/passwd.c +++ b/loginutils/passwd.c @@ -65,11 +65,9 @@ static char* new_password(const struct passwd *pw, uid_t myuid, const char *algo if (ENABLE_FEATURE_CLEAN_UP) free(encrypted); } - orig = xstrdup(orig); /* or else bb_ask_noecho_stdin() will destroy it */ newp = bb_ask_noecho_stdin("New password: "); /* returns ptr to static */ if (!newp) goto err_ret; - newp = xstrdup(newp); /* we are going to bb_ask_noecho_stdin() again, so save it */ if (ENABLE_FEATURE_PASSWD_WEAK_CHECK && obscure(orig, newp, pw) && myuid != 0 @@ -99,6 +97,7 @@ static char* new_password(const struct passwd *pw, uid_t myuid, const char *algo if (ENABLE_FEATURE_CLEAN_UP) free(newp); nuke_str(cp); + if (ENABLE_FEATURE_CLEAN_UP) free(cp); return ret; } -- cgit v1.1