1
1

busybox: update to 1.38.0

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 (commit 547f1ec)

* Config-defaults.in: OpenWrt logic applied to
  BUSYBOX_DEFAULT_LOGIN_SESSION_AS_CHILD (commit dc92917)

* 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 (commit f141090)

* 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 (commit 1da014f)

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>
This commit is contained in:
Seo Suchan 2026-06-01 12:51:39 +09:00 committed by Jonas Jelonek
parent 2f93ba1b5b
commit fe04581880
No known key found for this signature in database
18 changed files with 154 additions and 121 deletions

View File

@ -58,6 +58,9 @@ config BUSYBOX_DEFAULT_FEATURE_SHOW_SCRIPT
config BUSYBOX_DEFAULT_FEATURE_INSTALLER
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VERSION
bool
default n
config BUSYBOX_DEFAULT_INSTALL_NO_USR
bool
default n
@ -496,6 +499,9 @@ config BUSYBOX_DEFAULT_FEATURE_UNZIP_XZ
config BUSYBOX_DEFAULT_FEATURE_LZMA_FAST
bool
default n
config BUSYBOX_DEFAULT_FEATURE_PATH_TRAVERSAL_PROTECTION
bool
default n
config BUSYBOX_DEFAULT_FEATURE_VERBOSE
bool
default n
@ -709,6 +715,9 @@ config BUSYBOX_DEFAULT_SHA1SUM
config BUSYBOX_DEFAULT_SHA256SUM
bool
default y
config BUSYBOX_DEFAULT_SHA384SUM
bool
default n
config BUSYBOX_DEFAULT_SHA512SUM
bool
default n
@ -1340,6 +1349,9 @@ config BUSYBOX_DEFAULT_USE_BB_CRYPT
config BUSYBOX_DEFAULT_USE_BB_CRYPT_SHA
bool
default y
config BUSYBOX_DEFAULT_USE_BB_CRYPT_YES
bool
default n
config BUSYBOX_DEFAULT_ADD_SHELL
bool
default n
@ -1571,6 +1583,9 @@ config BUSYBOX_DEFAULT_FDISK
config BUSYBOX_DEFAULT_FDISK_SUPPORT_LARGE_DISKS
bool
default n
config BUSYBOX_DEFAULT_FEATURE_FDISK_BLKSIZE
bool
default n
config BUSYBOX_DEFAULT_FEATURE_FDISK_WRITABLE
bool
default n
@ -1652,6 +1667,9 @@ config BUSYBOX_DEFAULT_FEATURE_LAST_FANCY
config BUSYBOX_DEFAULT_LOSETUP
bool
default n
config BUSYBOX_DEFAULT_LSBLK
bool
default n
config BUSYBOX_DEFAULT_LSPCI
bool
default n
@ -1847,6 +1865,9 @@ config BUSYBOX_DEFAULT_FEATURE_UMOUNT_ALL
config BUSYBOX_DEFAULT_UNSHARE
bool
default n
config BUSYBOX_DEFAULT_UUIDGEN
bool
default n
config BUSYBOX_DEFAULT_WALL
bool
default n
@ -2577,6 +2598,9 @@ config BUSYBOX_DEFAULT_SLATTACH
config BUSYBOX_DEFAULT_SSL_CLIENT
bool
default n
config BUSYBOX_DEFAULT_SSL_SERVER
bool
default n
config BUSYBOX_DEFAULT_TC
bool
default n
@ -2604,6 +2628,9 @@ config BUSYBOX_DEFAULT_FEATURE_TELNET_WIDTH
config BUSYBOX_DEFAULT_TELNETD
bool
default n
config BUSYBOX_DEFAULT_FEATURE_TELNETD_SELFTEST_DEBUG
bool
default n
config BUSYBOX_DEFAULT_FEATURE_TELNETD_STANDALONE
bool
default n
@ -2910,6 +2937,9 @@ config BUSYBOX_DEFAULT_UPTIME
config BUSYBOX_DEFAULT_FEATURE_UPTIME_UTMP_SUPPORT
bool
default n
config BUSYBOX_DEFAULT_VMSTAT
bool
default n
config BUSYBOX_DEFAULT_WATCH
bool
default n
@ -3075,6 +3105,9 @@ config BUSYBOX_DEFAULT_HUSH
config BUSYBOX_DEFAULT_SHELL_HUSH
bool
default n
config BUSYBOX_DEFAULT_HUSH_NEED_FOR_SPEED
bool
default n
config BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
bool
default n
@ -3108,9 +3141,15 @@ config BUSYBOX_DEFAULT_HUSH_LOOPS
config BUSYBOX_DEFAULT_HUSH_CASE
bool
default n
config BUSYBOX_DEFAULT_HUSH_ALIAS
bool
default n
config BUSYBOX_DEFAULT_HUSH_FUNCTIONS
bool
default n
config BUSYBOX_DEFAULT_HUSH_FUNCTION_KEYWORD
bool
default n
config BUSYBOX_DEFAULT_HUSH_LOCAL
bool
default n

View File

@ -5,14 +5,14 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=busybox
PKG_VERSION:=1.37.0
PKG_RELEASE:=6
PKG_VERSION:=1.38.0
PKG_RELEASE:=1
PKG_FLAGS:=essential
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://www.busybox.net/downloads \
https://sources.buildroot.net/$(PKG_NAME)
PKG_HASH:=3311dff32e746499f4df0d5df04d7eb396382d7e108bb9250e7b519b837043a4
PKG_HASH:=34f9ea6ff8636f2c9241153b9114eefa9e65674a45318ae1ef95bb5f31c53bb2
PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
PKG_BUILD_PARALLEL:=1

View File

@ -203,6 +203,13 @@ config BUSYBOX_CONFIG_FEATURE_INSTALLER
busybox at runtime to create hard links or symlinks for all the
applets that are compiled into busybox.
config BUSYBOX_CONFIG_FEATURE_VERSION
bool "Support --version"
default BUSYBOX_DEFAULT_FEATURE_VERSION
depends on BUSYBOX_CONFIG_BUSYBOX
help
Enable 'busybox --version' support.
config BUSYBOX_CONFIG_INSTALL_NO_USR
bool "Don't use /usr"
default BUSYBOX_DEFAULT_INSTALL_NO_USR

View File

@ -447,4 +447,15 @@ config BUSYBOX_CONFIG_FEATURE_LZMA_FAST
This option reduces decompression time by about 25% at the cost of
a 1K bigger binary.
config BUSYBOX_CONFIG_FEATURE_PATH_TRAVERSAL_PROTECTION
bool "Prevent extraction of filenames with /../ path component"
default BUSYBOX_DEFAULT_FEATURE_PATH_TRAVERSAL_PROTECTION
help
busybox tar and unzip remove "PREFIX/../" (if it exists)
from extracted names.
This option enables this behavior for all other unpacking applets,
such as cpio, ar, rpm.
GNU cpio 2.15 has NO such sanity check.
# try other archivers and document their behavior?
endmenu

View File

@ -485,6 +485,12 @@ config BUSYBOX_CONFIG_SHA256SUM
help
Compute and check SHA256 message digest
config BUSYBOX_CONFIG_SHA384SUM
bool "sha384sum (7.3 kb)"
default BUSYBOX_DEFAULT_SHA384SUM
help
Compute and check SHA384 message digest
config BUSYBOX_CONFIG_SHA512SUM
bool "sha512sum (7.3 kb)"
default BUSYBOX_DEFAULT_SHA512SUM
@ -497,13 +503,13 @@ config BUSYBOX_CONFIG_SHA3SUM
help
Compute and check SHA3 message digest
comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum"
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
comment "Common options for md5sum, sha1sum, sha256sum, ..., sha3sum"
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA384SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
config BUSYBOX_CONFIG_FEATURE_MD5_SHA1_SUM_CHECK
bool "Enable -c, -s and -w options"
default BUSYBOX_DEFAULT_FEATURE_MD5_SHA1_SUM_CHECK
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
depends on BUSYBOX_CONFIG_MD5SUM || BUSYBOX_CONFIG_SHA1SUM || BUSYBOX_CONFIG_SHA256SUM || BUSYBOX_CONFIG_SHA384SUM || BUSYBOX_CONFIG_SHA512SUM || BUSYBOX_CONFIG_SHA3SUM
help
Enabling the -c options allows files to be checked
against pre-calculated hash values.

View File

@ -134,7 +134,7 @@ config BUSYBOX_CONFIG_FEATURE_VI_SEARCH
config BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH
bool "Enable regex in search and replace"
default BUSYBOX_DEFAULT_FEATURE_VI_REGEX_SEARCH
default BUSYBOX_DEFAULT_FEATURE_VI_REGEX_SEARCH # Uses GNU regex, which may be unavailable. FIXME
depends on BUSYBOX_CONFIG_FEATURE_VI_SEARCH
depends on USE_GLIBC
help

View File

@ -238,7 +238,7 @@ config BUSYBOX_CONFIG_FEATURE_EDITING_VI
config BUSYBOX_CONFIG_FEATURE_EDITING_HISTORY
int "History size"
# Don't allow way too big values here, code uses fixed "char *history[N]" struct member
range 0 9999
range 0 2000
default BUSYBOX_DEFAULT_FEATURE_EDITING_HISTORY
depends on BUSYBOX_CONFIG_FEATURE_EDITING
help

View File

@ -92,6 +92,17 @@ config BUSYBOX_CONFIG_USE_BB_CRYPT_SHA
With this option off, login will fail password check for any
user which has password encrypted with these algorithms.
config BUSYBOX_CONFIG_USE_BB_CRYPT_YES
bool "Enable yescrypt functions"
default BUSYBOX_DEFAULT_USE_BB_CRYPT_YES
depends on BUSYBOX_CONFIG_USE_BB_CRYPT
help
Enable this if you have passwords starting with "$y$" or
in your /etc/passwd or /etc/shadow files. These passwords
are hashed using yescrypt algorithms.
With this option off, login will fail password check for any
user which has password encrypted with these algorithms.
config BUSYBOX_CONFIG_ADD_SHELL
bool "add-shell (3.3 kb)"
default BUSYBOX_DEFAULT_ADD_SHELL if BUSYBOX_CONFIG_DESKTOP
@ -171,7 +182,7 @@ config BUSYBOX_CONFIG_FEATURE_DEFAULT_PASSWD_ALGO
default BUSYBOX_DEFAULT_FEATURE_DEFAULT_PASSWD_ALGO
depends on BUSYBOX_CONFIG_PASSWD || BUSYBOX_CONFIG_CRYPTPW || BUSYBOX_CONFIG_CHPASSWD
help
Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
Possible choices: "d[es]", "m[d5]", "s[ha256]", "sha512", "yescrypt"
config BUSYBOX_CONFIG_CRYPTPW
bool "cryptpw (15 kb)"
default BUSYBOX_DEFAULT_CRYPTPW

View File

@ -881,6 +881,13 @@ config BUSYBOX_CONFIG_SSL_CLIENT
select BUSYBOX_CONFIG_TLS
help
This tool pipes data to/from a socket, TLS-encrypting it.
config BUSYBOX_CONFIG_SSL_SERVER
bool "ssl_server (test TLS server)"
default BUSYBOX_DEFAULT_SSL_SERVER
select BUSYBOX_CONFIG_TLS
help
inetd-style TLS server. Stdin/stdout are already connected
to an accepted TCP socket.
config BUSYBOX_CONFIG_TC
bool "tc (8.3 kb)"
default BUSYBOX_DEFAULT_TC
@ -975,6 +982,14 @@ config BUSYBOX_CONFIG_TELNETD
with all that done, telnetd _should_ work....
config BUSYBOX_CONFIG_FEATURE_TELNETD_SELFTEST_DEBUG
bool "Include self-test (telnetd -@)"
default BUSYBOX_DEFAULT_FEATURE_TELNETD_SELFTEST_DEBUG
depends on BUSYBOX_CONFIG_TELNETD
help
Include self-test code for pty/vhangup() behavior.
Useful for development and validation on new platforms.
config BUSYBOX_CONFIG_FEATURE_TELNETD_STANDALONE
bool "Support standalone telnetd (not inetd only)"
default BUSYBOX_DEFAULT_FEATURE_TELNETD_STANDALONE

View File

@ -267,6 +267,11 @@ config BUSYBOX_CONFIG_FEATURE_UPTIME_UTMP_SUPPORT
depends on BUSYBOX_CONFIG_UPTIME && BUSYBOX_CONFIG_FEATURE_UTMP
help
Display the number of users currently logged on.
config BUSYBOX_CONFIG_VMSTAT
bool "vmstat (2 kb)"
default BUSYBOX_DEFAULT_VMSTAT
help
Report virtual memory statistics
config BUSYBOX_CONFIG_WATCH
bool "watch (5.2 kb)"
default BUSYBOX_DEFAULT_WATCH

View File

@ -17,7 +17,8 @@ config BUSYBOX_CONFIG_SETUIDGID
bool "setuidgid (4.2 kb)"
default BUSYBOX_DEFAULT_SETUIDGID
help
Sets soft resource limits as specified by options
Sets UID and GID to those of the given account, and execs
specified program.
config BUSYBOX_CONFIG_ENVUIDGID
bool "envuidgid (4.1 kb)"

View File

@ -143,6 +143,11 @@ config BUSYBOX_CONFIG_ASH_JOB_CONTROL
bool "Job control"
default BUSYBOX_DEFAULT_ASH_JOB_CONTROL
depends on BUSYBOX_CONFIG_SHELL_ASH
help
Enable 'fg', 'bg', 'jobs' and 'kill' builtins.
Shell will track whether backgrounded pipes are stopped
by signals, and allow to restart them by 'fg' or 'bg'.
Otherwise, it will only track whether they have terminated.
config BUSYBOX_CONFIG_ASH_ALIAS
bool "Alias support"
@ -276,7 +281,7 @@ config BUSYBOX_CONFIG_HUSH
It will compile and work on no-mmu systems.
It does not handle select, aliases, tilde expansion,
It does not handle select, tilde expansion,
&>file and >&file redirection of stdout+stderr.
config BUSYBOX_CONFIG_SHELL_HUSH
@ -287,6 +292,11 @@ config BUSYBOX_CONFIG_SHELL_HUSH
# It's only needed to get "nice" menuconfig indenting.
if SHELL_HUSH || BUSYBOX_CONFIG_HUSH || BUSYBOX_CONFIG_SH_IS_HUSH || BUSYBOX_CONFIG_BASH_IS_HUSH
config BUSYBOX_CONFIG_HUSH_NEED_FOR_SPEED
bool "Faster, but larger code"
default BUSYBOX_DEFAULT_HUSH_NEED_FOR_SPEED
depends on BUSYBOX_CONFIG_SHELL_HUSH
config BUSYBOX_CONFIG_HUSH_BASH_COMPAT
bool "bash-compatible extensions"
default BUSYBOX_DEFAULT_HUSH_BASH_COMPAT
@ -361,6 +371,13 @@ config BUSYBOX_CONFIG_HUSH_CASE
help
Enable case ... esac statement. +400 bytes.
config BUSYBOX_CONFIG_HUSH_ALIAS
bool "Support aliases"
default BUSYBOX_DEFAULT_HUSH_ALIAS
depends on BUSYBOX_CONFIG_SHELL_HUSH
help
Enable aliases.
config BUSYBOX_CONFIG_HUSH_FUNCTIONS
bool "Support funcname() { commands; } syntax"
default BUSYBOX_DEFAULT_HUSH_FUNCTIONS
@ -368,6 +385,13 @@ config BUSYBOX_CONFIG_HUSH_FUNCTIONS
help
Enable support for shell functions. +800 bytes.
config BUSYBOX_CONFIG_HUSH_FUNCTION_KEYWORD
bool "Support function keyword"
default BUSYBOX_DEFAULT_HUSH_FUNCTION_KEYWORD
depends on BUSYBOX_CONFIG_HUSH_FUNCTIONS
help
Support "function FUNCNAME { CMD; }" syntax.
config BUSYBOX_CONFIG_HUSH_LOCAL
bool "local builtin"
default BUSYBOX_DEFAULT_HUSH_LOCAL
@ -580,9 +604,10 @@ config BUSYBOX_CONFIG_FEATURE_SH_HISTFILESIZE
default BUSYBOX_DEFAULT_FEATURE_SH_HISTFILESIZE
depends on BUSYBOX_CONFIG_SHELL_ASH || BUSYBOX_CONFIG_SHELL_HUSH
help
This option makes busybox shells to use $HISTFILESIZE variable
to set shell history size. Note that its max value is capped
by "History size" setting in library tuning section.
This option makes busybox shells to use $HISTSIZE and
$HISTFILESIZE variables to set shell history size.
Note that its max value is capped by "History size" setting
in library tuning section.
config BUSYBOX_CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS
bool "Embed scripts in the binary"

View File

@ -163,6 +163,11 @@ config BUSYBOX_CONFIG_FDISK_SUPPORT_LARGE_DISKS
depends on BUSYBOX_CONFIG_FDISK
depends on !BUSYBOX_CONFIG_LFS # with LFS no special code is needed
config BUSYBOX_CONFIG_FEATURE_FDISK_BLKSIZE
bool "Support -s option to list sizes"
default BUSYBOX_DEFAULT_FEATURE_FDISK_BLKSIZE
depends on BUSYBOX_CONFIG_FDISK
config BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE
bool "Write support"
default BUSYBOX_DEFAULT_FEATURE_FDISK_WRITABLE
@ -371,6 +376,11 @@ config BUSYBOX_CONFIG_LOSETUP
losetup is used to associate or detach a loop device with a regular
file or block device, and to query the status of a loop device. This
version does not currently support enabling data encryption.
config BUSYBOX_CONFIG_LSBLK
bool "lsblk (2.5 kb)"
default BUSYBOX_DEFAULT_LSBLK
help
List information about all available or specified block devices.
config BUSYBOX_CONFIG_LSPCI
bool "lspci (6.4 kb)"
default BUSYBOX_DEFAULT_LSPCI
@ -888,6 +898,11 @@ config BUSYBOX_CONFIG_UNSHARE
select BUSYBOX_CONFIG_LONG_OPTS
help
Run program with some namespaces unshared from parent.
config BUSYBOX_CONFIG_UUIDGEN
bool "uuidgen (1.1 kb)"
default BUSYBOX_DEFAULT_UUIDGEN
help
Generate a UUID (Universally Unique Identifier) in RFC 4122 format.
config BUSYBOX_CONFIG_WALL
bool "wall (2.9 kb)"
default BUSYBOX_DEFAULT_WALL

View File

@ -1,12 +0,0 @@
--- a/libbb/hash_md5_sha.c
+++ b/libbb/hash_md5_sha.c
@@ -1313,7 +1313,9 @@ unsigned FAST_FUNC sha1_end(sha1_ctx_t *
hash_size = 8;
if (ctx->process_block == sha1_process_block64
#if ENABLE_SHA1_HWACCEL
+# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
|| ctx->process_block == sha1_process_block64_shaNI
+# endif
#endif
) {
hash_size = 5;

View File

@ -1,49 +0,0 @@
From 87e60dcf0f7ef917b73353d8605188a420bd91f9 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Mon, 28 Oct 2024 15:26:21 +0100
Subject: hexdump: fix regression with -n4 -e '"%u"'
Fix bug introduced in busybox 1.37.0 that broke kernel builds.
Fixes commit e2287f99fe6f (od: for !DESKTOP, match output more closely
to GNU coreutils 9.1, implement -s)
function old new delta
rewrite 967 976 +9
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
libbb/dump.c | 6 ++++--
testsuite/hexdump.tests | 6 ++++++
2 files changed, 10 insertions(+), 2 deletions(-)
--- a/libbb/dump.c
+++ b/libbb/dump.c
@@ -198,9 +198,11 @@ static NOINLINE void rewrite(priv_dumper
if (!e)
goto DO_BAD_CONV_CHAR;
pr->flags = F_INT;
- if (e > int_convs + 1) /* not d or i? */
- pr->flags = F_UINT;
byte_count_str = "\010\004\002\001";
+ if (e > int_convs + 1) { /* not d or i? */
+ pr->flags = F_UINT;
+ byte_count_str++;
+ }
goto DO_BYTE_COUNT;
} else
if (strchr(int_convs, *p1)) { /* %d etc */
--- a/testsuite/hexdump.tests
+++ b/testsuite/hexdump.tests
@@ -82,4 +82,10 @@ testing "hexdump -e /2 %d" \
"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f"\
"\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"\
+testing "hexdump -n4 -e '\"%u\"'" \
+ "hexdump -n4 -e '\"%u\"'" \
+ "12345678" \
+ "" \
+ "\x4e\x61\xbc\x00AAAA"
+
exit $FAILCOUNT

View File

@ -1,41 +0,0 @@
From f5c7cae55fc3e19d074198bc12152486067ea8c7 Mon Sep 17 00:00:00 2001
From: Radoslav Kolev <radoslav.kolev@suse.com>
Date: Thu, 24 Apr 2025 00:45:25 +0300
Subject: [PATCH] hexdump: fix regression for uint16 on big endian systems
Commit 34751d8bf introduced a bug in the handling of uint16
values on big endian systems not considered safe for unaligned
access when falling back to memcpy.
Signed-off-by: Radoslav Kolev <radoslav.kolev@suse.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
libbb/dump.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
--- a/libbb/dump.c
+++ b/libbb/dump.c
@@ -667,15 +667,21 @@ static NOINLINE void display(priv_dumper
conv_u(pr, bp);
break;
case F_UINT: {
+ union {
+ uint16_t uval16;
+ uint32_t uval32;
+ } u;
unsigned value = (unsigned char)*bp;
switch (pr->bcnt) {
case 1:
break;
case 2:
- move_from_unaligned16(value, bp);
+ move_from_unaligned16(u.uval16, bp);
+ value = u.uval16;
break;
case 4:
- move_from_unaligned32(value, bp);
+ move_from_unaligned32(u.uval32, bp);
+ value = u.uval32;
break;
/* case 8: no users yet */
}

View File

@ -1,6 +1,6 @@
--- a/networking/libiproute/iplink.c
+++ b/networking/libiproute/iplink.c
@@ -953,7 +953,7 @@ static int do_add_or_delete(char **argv,
@@ -974,7 +974,7 @@ static int do_add_or_delete(char **argv,
}
xrtnl_open(&rth);
ll_init_map(&rth);

View File

@ -14,16 +14,16 @@
/* 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$")];
@@ -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;
@@ -132,8 +132,12 @@ int cryptpw_main(int argc UNUSED_PARAM,
@@ -155,8 +155,12 @@ int cryptpw_main(int argc UNUSED_PARAM,
/* may still be NULL on EOF/error */
}