From c6fb2a6b5fcece0ee4a7caf42cc344b5e0177822 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Mon, 2 Nov 2009 19:18:49 +0100 Subject: [PATCH] passwd: do not complain if /etc/shadow is missing Signed-off-by: Denys Vlasenko --- libbb/update_passwd.c | 5 ++++- loginutils/passwd.c | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libbb/update_passwd.c b/libbb/update_passwd.c index 3aab40175..ba773fcb2 100644 --- a/libbb/update_passwd.c +++ b/libbb/update_passwd.c @@ -110,8 +110,11 @@ int FAST_FUNC update_passwd(const char *filename, old_fp = fopen(filename, "r+"); else old_fp = fopen_or_warn(filename, "r+"); - if (!old_fp) + if (!old_fp) { + if (shadow) + ret = 0; /* missing shadow is not an error */ goto free_mem; + } old_fd = fileno(old_fp); selinux_preserve_fcontext(old_fd); diff --git a/loginutils/passwd.c b/loginutils/passwd.c index 7b93713b9..1164ff4f9 100644 --- a/loginutils/passwd.c +++ b/loginutils/passwd.c @@ -21,7 +21,7 @@ static char* new_password(const struct passwd *pw, uid_t myuid, int algo) if (myuid && pw->pw_passwd[0]) { char *encrypted; - orig = bb_ask_stdin("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 */ @@ -35,7 +35,7 @@ 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_ask_stdin() will destroy it */ - newp = bb_ask_stdin("New password:"); /* returns ptr to static */ + newp = bb_ask_stdin("New password: "); /* returns ptr to static */ if (!newp) goto err_ret; newp = xstrdup(newp); /* we are going to bb_ask_stdin() again, so save it */ @@ -43,7 +43,7 @@ static char* new_password(const struct passwd *pw, uid_t myuid, int algo) && obscure(orig, newp, pw) && myuid) goto err_ret; /* non-root is not allowed to have weak passwd */ - cp = bb_ask_stdin("Retype password:"); + cp = bb_ask_stdin("Retype password: "); if (!cp) goto err_ret; if (strcmp(cp, newp)) { -- 2.25.1