X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=loginutils%2Fpasswd.c;h=c1481c65ee8f0c9e854c86fcd8d18b96929340aa;hb=9f5a577a3241597cb5e7ba9f6df33c2e3c440e44;hp=84e5aeb6d3af745b0c78b85a3a8b58f75854b298;hpb=a60f84ebf07863e390b72a2b6150e461a1ec18e9;p=oweals%2Fbusybox.git diff --git a/loginutils/passwd.c b/loginutils/passwd.c index 84e5aeb6d..c1481c65e 100644 --- a/loginutils/passwd.c +++ b/loginutils/passwd.c @@ -2,7 +2,6 @@ /* * Licensed under GPLv2 or later, see file LICENSE in this tarball for details. */ - #include "libbb.h" #include @@ -22,12 +21,12 @@ static char* new_password(const struct passwd *pw, uid_t myuid, int algo) if (myuid && pw->pw_passwd[0]) { char *encrypted; - orig = bb_askpass(0, "Old password:"); /* returns ptr to static */ + orig = bb_ask_stdin("Old password: "); /* returns ptr to static */ if (!orig) goto err_ret; encrypted = pw_encrypt(orig, pw->pw_passwd, 1); /* returns malloced str */ if (strcmp(encrypted, pw->pw_passwd) != 0) { - syslog(LOG_WARNING, "incorrect password for '%s'", + syslog(LOG_WARNING, "incorrect password for %s", pw->pw_name); bb_do_delay(FAIL_DELAY); puts("Incorrect password"); @@ -35,16 +34,16 @@ static char* new_password(const struct passwd *pw, uid_t myuid, int algo) } if (ENABLE_FEATURE_CLEAN_UP) free(encrypted); } - orig = xstrdup(orig); /* or else bb_askpass() will destroy it */ - newp = bb_askpass(0, "New password:"); /* returns ptr to static */ + orig = xstrdup(orig); /* or else bb_ask_stdin() will destroy it */ + newp = bb_ask_stdin("New password: "); /* returns ptr to static */ if (!newp) goto err_ret; - newp = xstrdup(newp); /* we are going to bb_askpass() again, so save it */ + newp = xstrdup(newp); /* we are going to bb_ask_stdin() again, so save it */ if (ENABLE_FEATURE_PASSWD_WEAK_CHECK && obscure(orig, newp, pw) && myuid) goto err_ret; /* non-root is not allowed to have weak passwd */ - cp = bb_askpass(0, "Retype password:"); + cp = bb_ask_stdin("Retype password: "); if (!cp) goto err_ret; if (strcmp(cp, newp)) { @@ -100,7 +99,7 @@ int passwd_main(int argc UNUSED_PARAM, char **argv) #endif logmode = LOGMODE_BOTH; - openlog(applet_name, LOG_NOWAIT, LOG_AUTH); + openlog(applet_name, 0, LOG_AUTH); opt = getopt32(argv, "a:lud", &opt_a); //argc -= optind; argv += optind; @@ -115,11 +114,10 @@ int passwd_main(int argc UNUSED_PARAM, char **argv) bb_show_usage(); /* Will complain and die if username not found */ - myname = xstrdup(bb_getpwuid(NULL, -1, myuid)); + myname = xstrdup(xuid2uname(myuid)); name = argv[0] ? argv[0] : myname; - pw = getpwnam(name); - if (!pw) bb_error_msg_and_die("unknown user %s", name); + pw = xgetpwnam(name); if (myuid && pw->pw_uid != myuid) { /* LOGMODE_BOTH */ bb_error_msg_and_die("%s can't change password for %s", myname, name); @@ -148,7 +146,7 @@ int passwd_main(int argc UNUSED_PARAM, char **argv) if (!(opt & OPT_lud)) { if (myuid && !c) { /* passwd starts with '!' */ /* LOGMODE_BOTH */ - bb_error_msg_and_die("cannot change " + bb_error_msg_and_die("can't change " "locked password for %s", name); } printf("Changing password for %s\n", name); @@ -182,16 +180,16 @@ int passwd_main(int argc UNUSED_PARAM, char **argv) #if ENABLE_FEATURE_SHADOWPASSWDS filename = bb_path_shadow_file; - rc = update_passwd(bb_path_shadow_file, name, newp); + rc = update_passwd(bb_path_shadow_file, name, newp, NULL); if (rc == 0) /* no lines updated, no errors detected */ #endif { filename = bb_path_passwd_file; - rc = update_passwd(bb_path_passwd_file, name, newp); + rc = update_passwd(bb_path_passwd_file, name, newp, NULL); } /* LOGMODE_BOTH */ if (rc < 0) - bb_error_msg_and_die("cannot update password file %s", + bb_error_msg_and_die("can't update password file %s", filename); bb_info_msg("Password for %s changed by %s", name, myname);