[openwrt/openwrt] busybox: update to 1.36.0

LEDE Commits lede-commits at lists.infradead.org
Sat Jan 7 08:23:28 PST 2023


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/98b09ba250d3f9e690e26ea65e9bbdcc2dc7d26d

commit 98b09ba250d3f9e690e26ea65e9bbdcc2dc7d26d
Author: Hannu Nyman <hannu.nyman at iki.fi>
AuthorDate: Tue Jan 3 23:48:51 2023 +0200

    busybox: update to 1.36.0
    
    Update busybox to version 1.36.0
    
    * refresh patches (remove the backported upstream fix)
    * refresh config
    
    Config refresh:
    
    Refresh commands, run after busybox is first built once:
    
    cd package/utils/busybox/config/
    ../convert_menuconfig.pl ../../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.36.0
    cd ..
    ./convert_defaults.pl ../../../build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/busybox-default/busybox-1.36.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: Hannu Nyman <hannu.nyman at iki.fi>
---
 package/utils/busybox/Config-defaults.in           | 33 ++++++++++++
 package/utils/busybox/Makefile                     |  6 +--
 package/utils/busybox/config/coreutils/Config.in   |  7 ++-
 package/utils/busybox/config/libbb/Config.in       | 62 +++++++++++++++++++---
 package/utils/busybox/config/miscutils/Config.in   | 12 +++++
 .../busybox/config/networking/udhcp/Config.in      |  7 ++-
 package/utils/busybox/config/shell/Config.in       |  5 ++
 ...001-CVE-2022-30065-awk-fix-use-after-free.patch | 42 ---------------
 8 files changed, 120 insertions(+), 54 deletions(-)

diff --git a/package/utils/busybox/Config-defaults.in b/package/utils/busybox/Config-defaults.in
index abe6d5431a..7b6cf90033 100644
--- a/package/utils/busybox/Config-defaults.in
+++ b/package/utils/busybox/Config-defaults.in
@@ -208,6 +208,15 @@ config BUSYBOX_DEFAULT_PASSWORD_MINLEN
 config BUSYBOX_DEFAULT_MD5_SMALL
 	int
 	default 1
+config BUSYBOX_DEFAULT_SHA1_SMALL
+	int
+	default 3
+config BUSYBOX_DEFAULT_SHA1_HWACCEL
+	bool
+	default y
+config BUSYBOX_DEFAULT_SHA256_HWACCEL
+	bool
+	default y
 config BUSYBOX_DEFAULT_SHA3_SMALL
 	int
 	default 1
@@ -298,6 +307,15 @@ config BUSYBOX_DEFAULT_UNICODE_NEUTRAL_TABLE
 config BUSYBOX_DEFAULT_UNICODE_PRESERVE_BROKEN
 	bool
 	default n
+config BUSYBOX_DEFAULT_LOOP_CONFIGURE
+	bool
+	default n
+config BUSYBOX_DEFAULT_NO_LOOP_CONFIGURE
+	bool
+	default n
+config BUSYBOX_DEFAULT_TRY_LOOP_CONFIGURE
+	bool
+	default y
 config BUSYBOX_DEFAULT_FEATURE_SEAMLESS_XZ
 	bool
 	default n
@@ -860,6 +878,9 @@ config BUSYBOX_DEFAULT_TRUNCATE
 	bool
 	default y if TARGET_bcm53xx
 	default n
+config BUSYBOX_DEFAULT_TSORT
+	bool
+	default n
 config BUSYBOX_DEFAULT_TTY
 	bool
 	default n
@@ -2162,6 +2183,9 @@ config BUSYBOX_DEFAULT_RUNLEVEL
 config BUSYBOX_DEFAULT_RX
 	bool
 	default n
+config BUSYBOX_DEFAULT_SEEDRNG
+	bool
+	default n
 config BUSYBOX_DEFAULT_SETFATTR
 	bool
 	default n
@@ -2174,6 +2198,9 @@ config BUSYBOX_DEFAULT_STRINGS
 config BUSYBOX_DEFAULT_TIME
 	bool
 	default y
+config BUSYBOX_DEFAULT_TREE
+	bool
+	default n
 config BUSYBOX_DEFAULT_TS
 	bool
 	default n
@@ -2682,6 +2709,9 @@ config BUSYBOX_DEFAULT_FEATURE_UDHCPC_SANITIZEOPT
 config BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT
 	string
 	default "/usr/share/udhcpc/default.script"
+config BUSYBOX_DEFAULT_UDHCPC6_DEFAULT_SCRIPT
+	string
+	default ""
 config BUSYBOX_DEFAULT_UDHCPC6
 	bool
 	default n
@@ -3012,6 +3042,9 @@ config BUSYBOX_DEFAULT_ASH_PRINTF
 config BUSYBOX_DEFAULT_ASH_TEST
 	bool
 	default y
+config BUSYBOX_DEFAULT_ASH_SLEEP
+	bool
+	default n
 config BUSYBOX_DEFAULT_ASH_HELP
 	bool
 	default n
diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
index 2861e7d2e9..9573278945 100644
--- a/package/utils/busybox/Makefile
+++ b/package/utils/busybox/Makefile
@@ -5,14 +5,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=busybox
-PKG_VERSION:=1.35.0
-PKG_RELEASE:=$(AUTORELEASE)
+PKG_VERSION:=1.36.0
+PKG_RELEASE:=1
 PKG_FLAGS:=essential
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.busybox.net/downloads \
 		http://sources.buildroot.net
-PKG_HASH:=faeeb244c35a348a334f4a59e44626ee870fb07b6884d68c10ae8bc19f83a694
+PKG_HASH:=542750c8af7cb2630e201780b4f99f3dcceeb06f505b479ec68241c1e6af61a5
 
 PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
 PKG_BUILD_PARALLEL:=1
diff --git a/package/utils/busybox/config/coreutils/Config.in b/package/utils/busybox/config/coreutils/Config.in
index 835ce7950a..983740be6e 100644
--- a/package/utils/busybox/config/coreutils/Config.in
+++ b/package/utils/busybox/config/coreutils/Config.in
@@ -653,7 +653,7 @@ config BUSYBOX_CONFIG_SORT
 	sort is used to sort lines of text in specified files.
 
 config BUSYBOX_CONFIG_FEATURE_SORT_BIG
-	bool "Full SuSv3 compliant sort (support -ktcbdfiogM)"
+	bool "Full SuSv3 compliant sort (support -ktcbdfioghM)"
 	default BUSYBOX_DEFAULT_FEATURE_SORT_BIG
 	depends on BUSYBOX_CONFIG_SORT
 	help
@@ -851,6 +851,11 @@ config BUSYBOX_CONFIG_TRUNCATE
 	help
 	truncate truncates files to a given size. If a file does
 	not exist, it is created unless told otherwise.
+config BUSYBOX_CONFIG_TSORT
+	bool "tsort (0.7 kb)"
+	default BUSYBOX_DEFAULT_TSORT
+	help
+	tsort performs a topological sort.
 config BUSYBOX_CONFIG_TTY
 	bool "tty (3.6 kb)"
 	default BUSYBOX_DEFAULT_TTY
diff --git a/package/utils/busybox/config/libbb/Config.in b/package/utils/busybox/config/libbb/Config.in
index e050c4a915..b3a83b9b08 100644
--- a/package/utils/busybox/config/libbb/Config.in
+++ b/package/utils/busybox/config/libbb/Config.in
@@ -98,21 +98,47 @@ config BUSYBOX_CONFIG_MD5_SMALL
 	default BUSYBOX_DEFAULT_MD5_SMALL  # all "fast or small" options default to small
 	range 0 3
 	help
-	Trade binary size versus speed for the md5sum algorithm.
+	Trade binary size versus speed for the md5 algorithm.
 	Approximate values running uClibc and hashing
 	linux-2.4.4.tar.bz2 were:
-	value               user times (sec)  text size (386)
-	0 (fastest)         1.1                6144
-	1                   1.4                5392
-	2                   3.0                5088
-	3 (smallest)        5.1                4912
+	value           user times (sec)  text size (386)
+	0 (fastest)     1.1               6144
+	1               1.4               5392
+	2               3.0               5088
+	3 (smallest)    5.1               4912
+
+config BUSYBOX_CONFIG_SHA1_SMALL
+	int "SHA1: Trade bytes for speed (0:fast, 3:slow)"
+	default BUSYBOX_DEFAULT_SHA1_SMALL  # all "fast or small" options default to small
+	range 0 3
+	help
+	Trade binary size versus speed for the sha1 algorithm.
+	With FEATURE_COPYBUF_KB=64:
+	                throughput MB/s   size of sha1_process_block64
+	value           486  x86-64       486   x86-64
+	0               440  485          3481  3502
+	1               265  265           641   696
+	2,3             220  210           342   364
+
+config BUSYBOX_CONFIG_SHA1_HWACCEL
+	bool "SHA1: Use hardware accelerated instructions if possible"
+	default BUSYBOX_DEFAULT_SHA1_HWACCEL
+	help
+	On x86, this adds ~590 bytes of code. Throughput
+	is about twice as fast as fully-unrolled generic code.
+
+config BUSYBOX_CONFIG_SHA256_HWACCEL
+	bool "SHA256: Use hardware accelerated instructions if possible"
+	default BUSYBOX_DEFAULT_SHA256_HWACCEL
+	help
+	On x86, this adds ~1k bytes of code.
 
 config BUSYBOX_CONFIG_SHA3_SMALL
 	int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
 	default BUSYBOX_DEFAULT_SHA3_SMALL  # all "fast or small" options default to small
 	range 0 1
 	help
-	Trade binary size versus speed for the sha3sum algorithm.
+	Trade binary size versus speed for the sha3 algorithm.
 	SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
 	64-bit x86: +270 bytes of code, 45% faster
 	32-bit x86: +450 bytes of code, 75% faster
@@ -399,3 +425,25 @@ config BUSYBOX_CONFIG_UNICODE_PRESERVE_BROKEN
 	For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
 	at shell prompt will list file named 0xff (single char name
 	with char value 255), not file named '?'.
+
+choice
+	prompt "Use LOOP_CONFIGURE for losetup and loop mounts"
+	default BUSYBOX_CONFIG_TRY_LOOP_CONFIGURE
+	help
+	LOOP_CONFIGURE is added to Linux 5.8
+	https://lwn.net/Articles/820408/
+	This allows userspace to completely setup a loop device with a single
+	ioctl, removing the in-between state where the device can be partially
+	configured - eg the loop device has a backing file associated with it,
+	but is reading from the wrong offset.
+
+config BUSYBOX_CONFIG_LOOP_CONFIGURE
+	bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
+
+config BUSYBOX_CONFIG_NO_LOOP_CONFIGURE
+	bool "use LOOP_SET_FD + LOOP_SET_STATUS"
+
+config BUSYBOX_CONFIG_TRY_LOOP_CONFIGURE
+	bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
+
+endchoice
diff --git a/package/utils/busybox/config/miscutils/Config.in b/package/utils/busybox/config/miscutils/Config.in
index ecb83d9647..e15e318fe0 100644
--- a/package/utils/busybox/config/miscutils/Config.in
+++ b/package/utils/busybox/config/miscutils/Config.in
@@ -704,6 +704,13 @@ config BUSYBOX_CONFIG_RX
 	default BUSYBOX_DEFAULT_RX
 	help
 	Receive files using the Xmodem protocol.
+config BUSYBOX_CONFIG_SEEDRNG
+	bool "seedrng (1.3 kb)"
+	default BUSYBOX_DEFAULT_SEEDRNG
+	help
+	Seed the kernel RNG from seed files, meant to be called
+	once during startup, once during shutdown, and optionally
+	at some periodic interval in between.
 config BUSYBOX_CONFIG_SETFATTR
 	bool "setfattr (3.7 kb)"
 	default BUSYBOX_DEFAULT_SETFATTR
@@ -727,6 +734,11 @@ config BUSYBOX_CONFIG_TIME
 	The time command runs the specified program with the given arguments.
 	When the command finishes, time writes a message to standard output
 	giving timing statistics about this program run.
+config BUSYBOX_CONFIG_TREE
+	bool "tree (0.6 kb)"
+	default BUSYBOX_DEFAULT_TREE
+	help
+	List files and directories in a tree structure.
 config BUSYBOX_CONFIG_TS
 	bool "ts (450 bytes)"
 	default BUSYBOX_DEFAULT_TS
diff --git a/package/utils/busybox/config/networking/udhcp/Config.in b/package/utils/busybox/config/networking/udhcp/Config.in
index ecfa283e23..6757f1efc9 100644
--- a/package/utils/busybox/config/networking/udhcp/Config.in
+++ b/package/utils/busybox/config/networking/udhcp/Config.in
@@ -93,12 +93,17 @@ config BUSYBOX_CONFIG_FEATURE_UDHCPC_SANITIZEOPT
 config BUSYBOX_CONFIG_UDHCPC_DEFAULT_SCRIPT
 	string "Absolute path to config script"
 	default BUSYBOX_DEFAULT_UDHCPC_DEFAULT_SCRIPT
-	depends on BUSYBOX_CONFIG_UDHCPC || BUSYBOX_CONFIG_UDHCPC6
+	depends on BUSYBOX_CONFIG_UDHCPC
 	help
 	This script is called after udhcpc receives an answer. See
 	examples/udhcp for a working example. Normally it is safe
 	to leave this untouched.
 
+config BUSYBOX_CONFIG_UDHCPC6_DEFAULT_SCRIPT
+	string "Absolute path to config script for IPv6"
+	default BUSYBOX_DEFAULT_UDHCPC6_DEFAULT_SCRIPT
+	depends on BUSYBOX_CONFIG_UDHCPC6
+
 # udhcpc6 config is inserted here:
 config BUSYBOX_CONFIG_UDHCPC6
 	bool "udhcpc6 (21 kb)"
diff --git a/package/utils/busybox/config/shell/Config.in b/package/utils/busybox/config/shell/Config.in
index 2b07812109..a68e9114ef 100644
--- a/package/utils/busybox/config/shell/Config.in
+++ b/package/utils/busybox/config/shell/Config.in
@@ -201,6 +201,11 @@ config BUSYBOX_CONFIG_ASH_TEST
 	default BUSYBOX_DEFAULT_ASH_TEST
 	depends on BUSYBOX_CONFIG_SHELL_ASH
 
+config BUSYBOX_CONFIG_ASH_SLEEP
+	bool "sleep builtin"
+	default BUSYBOX_DEFAULT_ASH_SLEEP
+	depends on BUSYBOX_CONFIG_SHELL_ASH
+
 config BUSYBOX_CONFIG_ASH_HELP
 	bool "help builtin"
 	default BUSYBOX_DEFAULT_ASH_HELP
diff --git a/package/utils/busybox/patches/001-CVE-2022-30065-awk-fix-use-after-free.patch b/package/utils/busybox/patches/001-CVE-2022-30065-awk-fix-use-after-free.patch
deleted file mode 100644
index 7dcb9dff3f..0000000000
--- a/package/utils/busybox/patches/001-CVE-2022-30065-awk-fix-use-after-free.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From e63d7cdfdac78c6fd27e9e63150335767592b85e Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa at alpinelinux.org>
-Date: Fri, 17 Jun 2022 17:45:34 +0200
-Subject: awk: fix use after free (CVE-2022-30065)
-
-fixes https://bugs.busybox.net/show_bug.cgi?id=14781
-
-function                                             old     new   delta
-evaluate                                            3343    3357     +14
-
-Signed-off-by: Natanael Copa <ncopa at alpinelinux.org>
-Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
----
- editors/awk.c       | 3 +++
- testsuite/awk.tests | 6 ++++++
- 2 files changed, 9 insertions(+)
-
---- a/editors/awk.c
-+++ b/editors/awk.c
-@@ -3114,6 +3114,9 @@ static var *evaluate(node *op, var *res)
- 
- 		case XC( OC_MOVE ):
- 			debug_printf_eval("MOVE\n");
-+			/* make sure that we never return a temp var */
-+			if (L.v == TMPVAR0)
-+				L.v = res;
- 			/* if source is a temporary string, jusk relink it to dest */
- 			if (R.v == TMPVAR1
- 			 && !(R.v->type & VF_NUMBER)
---- a/testsuite/awk.tests
-+++ b/testsuite/awk.tests
-@@ -469,4 +469,10 @@ testing 'awk printf %% prints one %' \
- 	"%\n" \
- 	'' ''
- 
-+testing 'awk assign while test' \
-+	"awk '\$1==\$1=\"foo\" {print \$1}'" \
-+	"foo\n" \
-+	"" \
-+	"foo"
-+
- exit $FAILCOUNT




More information about the lede-commits mailing list