Initial commit

This commit is contained in:
domenico
2025-06-24 13:14:22 +02:00
commit 4002f145fc
9002 changed files with 1731834 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
--- a/loginutils/chpasswd.c
+++ b/loginutils/chpasswd.c
@@ -89,6 +89,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
@@ -87,7 +87,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;
@@ -132,8 +132,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)