Initial commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
--- a/loginutils/chpasswd.c
|
||||
+++ b/loginutils/chpasswd.c
|
||||
@@ -97,6 +97,11 @@ int chpasswd_main(int argc UNUSED_PARAM,
|
||||
|
||||
crypt_make_pw_salt(salt, algo);
|
||||
free_me = pass = pw_encrypt(pass, salt, 0);
|
||||
+
|
||||
+ if (pass[0] == 0) {
|
||||
+ free(free_me);
|
||||
+ bb_perror_msg_and_die("password encryption failed");
|
||||
+ }
|
||||
}
|
||||
|
||||
/* This is rather complex: if user is not found in /etc/shadow,
|
||||
--- a/loginutils/cryptpw.c
|
||||
+++ b/loginutils/cryptpw.c
|
||||
@@ -95,7 +95,7 @@ int cryptpw_main(int argc UNUSED_PARAM,
|
||||
/* Supports: cryptpw -m sha256 PASS 'rounds=999999999$SALT' */
|
||||
char salt[MAX_PW_SALT_LEN + sizeof("rounds=999999999$")];
|
||||
char *salt_ptr;
|
||||
- char *password;
|
||||
+ char *password, *hash;
|
||||
const char *opt_m, *opt_S;
|
||||
int fd;
|
||||
|
||||
@@ -140,8 +140,12 @@ int cryptpw_main(int argc UNUSED_PARAM,
|
||||
/* may still be NULL on EOF/error */
|
||||
}
|
||||
|
||||
- if (password)
|
||||
- puts(pw_encrypt(password, salt, 1));
|
||||
+ if (password) {
|
||||
+ hash = pw_encrypt(password, salt, 1);
|
||||
+ if (hash[0] == 0)
|
||||
+ bb_perror_msg_and_die("password encryption failed");
|
||||
+ puts(hash);
|
||||
+ }
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
--- a/loginutils/passwd.c
|
||||
+++ b/loginutils/passwd.c
|
||||
@@ -187,6 +187,10 @@ int passwd_main(int argc UNUSED_PARAM, c
|
||||
if (!newp) {
|
||||
logmode = LOGMODE_STDIO;
|
||||
bb_error_msg_and_die("password for %s is unchanged", name);
|
||||
+ } else if (newp[0] == 0) {
|
||||
+ logmode = LOGMODE_STDIO;
|
||||
+ free(newp);
|
||||
+ bb_perror_msg_and_die("password encryption failed");
|
||||
}
|
||||
} else if (opt & OPT_lock) {
|
||||
if (!c)
|
||||
Reference in New Issue
Block a user