changelog: https://busybox.net/news.html remove upstreamed patches: 001-fix-non-x86-build.patch 002-upstream-fix.hexdump.patch 003-hexdump-fix-regression-for-unit16-on-big-endian-systems.patch see https://github.com/openwrt/openwrt/pull/17107 for updating config Config refresh: Refresh commands, run after busybox is first built once, slash or lack of slash at end of path matters!: cd package/utils/busybox/config/ ../convert_menuconfig.pl ../../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.38.0 cd .. ./convert_defaults.pl ../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.38.0/.config > Config-defaults.in Manual edits needed after config refresh: * Config-defaults.in: OpenWrt config symbol IPV6 logic applied to BUSYBOX_DEFAULT_FEATURE_IPV6 * Config-defaults.in: OpenWrt config TARGET_bcm53xx logic applied to BUSYBOX_DEFAULT_TRUNCATE (commit547f1ec) * Config-defaults.in: OpenWrt logic applied to BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD (commitdc92917) * Config-defaults.in: correct the default ports that get reset BUSYBOX_DEFAULT_FEATURE_HTTPD_PORT_DEFAULT 80 BUSYBOX_DEFAULT_FEATURE_TELNETD_PORT_DEFAULT 23 * config/editors/Config.in: Add USE_GLIBC dependency to BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH (commitf141090) * config/shell/Config.in: change at "Options common to all shells" the conditional 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 a few Config.in files by adding quotes to sourced items in config/Config.in, config/networking/Config.in and config/util-linux/Config.in (commit1da014f) Signed-off-by: Seo Suchan <tjtncks@gmail.com> Link: https://github.com/openwrt/openwrt/pull/23609 Signed-off-by: Jonas Jelonek <jelonek.jonas@gmail.com>
54 lines
1.3 KiB
Diff
54 lines
1.3 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
|
|
@@ -86,7 +86,7 @@ int cryptpw_main(int argc UNUSED_PARAM,
|
|
{
|
|
char salt[MAX_PW_SALT_LEN];
|
|
char *salt_ptr;
|
|
- char *password;
|
|
+ char *password, *hash;
|
|
const char *opt_m, *opt_S;
|
|
int fd;
|
|
|
|
@@ -155,8 +155,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)
|