0275ee5dde
Remove stime backport. Remove static libgcc patch as upstream fixed it with BUSYBOX_DEFAULT_STATIC_LIBGCC which defauls to off. Remove date -k patch as it no longer applies. It's also pointless as busybox' hwclock utility can do the same thing. Remove ntpd patch as that seems to have been applied upstream. Add smalll patch fixing compilation with SELinux. Upstream commit 2496616b0a8d1c80cd1416b73a4847b59b9f969a renamed the variable without renaming it in the SELinux path. Refresh config and patches. Config refresh: Refresh commands, run after busybox is first built once: cd package/utils/busybox/config/ ../convert_menuconfig.pl ../../../../build_dir/target-mips_24kc_musl/busybox-default/busybox-1.33.0 cd .. ./convert_defaults.pl < ../../../build_dir/target-mips_24kc_musl/busybox-default/busybox-1.33.0/.config > Config-defaults.in Manual edits needed afterward: * Config-defaults.in: OpenWrt config symbol IPV6 logic applied to BUSYBOX_DEFAULT_FEATURE_IPV6 * Config-defaults.in: OpenWrt configTARGET_bcm53xx logic applied to BUSYBOX_DEFAULT_TRUNCATE (commit547f1ec
) * editors/Config.in: Add USE_GLIBC dependency to BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commitf141090
) * shell/Config.in : change at "Options common to all shells" the symbol SHELL_ASH --> BUSYBOX_CONFIG_SHELL_ASH (discussion in http://lists.openwrt.org/pipermail/openwrt-devel/2021-January/033140.html Apparently our script does not see the hidden option while prepending config options with "BUSYBOX_CONFIG_" which leads to a missed dependency when the options are later evaluated.) * Edit Config.in files by adding quotes to sourced items in config/Config.in, networking/Config.in and util-linux/Config.in (commit1da014f
) Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> [Added comments from Hannu Nyman to commit message] Signed-off-by: Rosen Penev <rosenp@gmail.com>
54 lines
1.4 KiB
Diff
54 lines
1.4 KiB
Diff
--- 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)
|