[git commit master] passwd: do not complain if /etc/shadow is missing

Denys Vlasenko vda.linux at googlemail.com
Mon Nov 2 18:18:49 UTC 2009


commit: http://git.busybox.net/busybox/commit/?id=c6fb2a6b5fcece0ee4a7caf42cc344b5e0177822
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 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 3aab401..ba773fc 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 7b93713..1164ff4 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)) {
-- 
1.6.3.3



More information about the busybox-cvs mailing list