summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-11-02 18:18:49 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2009-11-02 18:18:49 (GMT)
commitc6fb2a6b5fcece0ee4a7caf42cc344b5e0177822 (patch)
treedbf8b5ff4e7e0ebe7e6fa2387292916e53130949
parent26c64bade81f748857b0327356f4a5e469feb335 (diff)
downloadbusybox-c6fb2a6b5fcece0ee4a7caf42cc344b5e0177822.tar.gz
busybox-c6fb2a6b5fcece0ee4a7caf42cc344b5e0177822.tar.bz2
passwd: do not complain if /etc/shadow is missing
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--libbb/update_passwd.c5
-rw-r--r--loginutils/passwd.c6
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)) {