[OE-core] [PATCH 1/2] busybox: 1.24.1 -> 1.27.2

ChenQi Qi.Chen at windriver.com
Wed Dec 20 02:01:02 UTC 2017


On 12/19/2017 05:16 PM, Andrej Valek wrote:
> Hello Chen Qi,
>
> Of course I have tested this upgrade before committing. Our devices are
> working with this version without any problems.
>
> Could you please show your defconfig, if it is ok.
>
> Regards,
> Andrej

Hi Andrej,

You are right! The current busybox works well.

I cleaned up the sstate cache, and did a rebuild. Everything worked out 
well.
I'm not sure why the problem occurred in the first place, and I cannot 
reproduce it now.

Best Regards,
Chen Qi

> On 12/19/2017 09:41 AM, ChenQi wrote:
>> Hi Andrej,
>>
>> I just booted up a target and found that /etc/busybox.links.nosuid
>> contains only /bin/sh.
>> That means utilities like 'grep' are not available, even if they are
>> enabled in busybox's defconfig.
>> I'm using latest master with no custom layers.
>>
>> Could you please double check if the current version of busybox works well?
>>
>> Best Regards,
>> Chen Qi
>>
>> On 10/03/2017 11:38 PM, Andrej Valek wrote:
>>> - fixed link creation to shell
>>>    - reported bug with suid shells [https://bugs.busybox.net/show_bug.cgi?id=10346]
>>> - removed and modified already merged patches
>>> - updated defconfig regarding to new version
>>>
>>> Signed-off-by: Andrej Valek <andrej.valek at siemens.com>
>>> Signed-off-by: Radovan Scasny <radovan.scasny at siemens.com>
>>> ---
>>>    ...ss-interface-device-name-for-ipv6-route-c.patch |  52 --
>>>    meta/recipes-core/busybox/busybox.inc              |  16 +-
>>>    ...e-the-behaviour-of-c-parameter-to-match-u.patch |  64 ---
>>>    ...mproper-optimization-req.r.rtm_scope-may-.patch |  33 --
>>>    .../0001-iproute-support-scope-.-Closes-8561.patch | 122 -----
>>>    ...biproute-handle-table-ids-larger-than-255.patch | 134 -----
>>>    ...-n-flushes-pattern-space-terminates-early.patch |  72 ---
>>>    .../busybox/BUG9071_buffer_overflow_arp.patch      |  53 --
>>>    .../busybox/busybox/CVE-2016-2147.patch            |  57 --
>>>    .../busybox/busybox/CVE-2016-2147_2.patch          |  32 --
>>>    .../busybox/busybox/CVE-2016-2148.patch            |  74 ---
>>>    .../busybox/busybox/CVE-2016-6301.patch            |  37 --
>>>    .../busybox-1.24.1-truncate-open-mode.patch        |  81 ---
>>>    .../busybox/busybox-1.24.1-unzip-regression.patch  | 143 ------
>>>    .../busybox/busybox/busybox-1.24.1-unzip.patch     | 118 -----
>>>    .../busybox/busybox/busybox-cross-menuconfig.patch |  18 +-
>>>    .../busybox-kbuild-race-fix-commit-d8e61bb.patch   |  53 --
>>>    .../busybox-tar-add-IF_FEATURE_-checks.patch       |  70 ---
>>>    .../busybox/busybox-udhcpc-no_deconfig.patch       |  68 +--
>>>    .../commit-applet_tables-fix-commit-0dddbc1.patch  |  61 ---
>>>    meta/recipes-core/busybox/busybox/defconfig        | 572 ++++++++++++---------
>>>    ...lem_on_mips64_n64_big_endian_musl_systems.patch |  90 ----
>>>    .../busybox/busybox/makefile-fix-backport.patch    |  40 --
>>>    .../{busybox_1.24.1.bb => busybox_1.27.2.bb}       |  23 +-
>>>    24 files changed, 384 insertions(+), 1699 deletions(-)
>>>    delete mode 100644 meta/recipes-core/busybox/busybox-1.24.1/ifupdown-pass-interface-device-name-for-ipv6-route-c.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/0001-ip-fix-an-improper-optimization-req.r.rtm_scope-may-.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/0001-iproute-support-scope-.-Closes-8561.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/0001-libiproute-handle-table-ids-larger-than-255.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/BUG9071_buffer_overflow_arp.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/CVE-2016-2147.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/CVE-2016-2147_2.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/CVE-2016-2148.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/CVE-2016-6301.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/busybox-1.24.1-truncate-open-mode.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/busybox-1.24.1-unzip-regression.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/busybox-1.24.1-unzip.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/busybox-tar-add-IF_FEATURE_-checks.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/commit-applet_tables-fix-commit-0dddbc1.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch
>>>    delete mode 100644 meta/recipes-core/busybox/busybox/makefile-fix-backport.patch
>>>    rename meta/recipes-core/busybox/{busybox_1.24.1.bb => busybox_1.27.2.bb} (57%)
>>>
>>> diff --git a/meta/recipes-core/busybox/busybox-1.24.1/ifupdown-pass-interface-device-name-for-ipv6-route-c.patch b/meta/recipes-core/busybox/busybox-1.24.1/ifupdown-pass-interface-device-name-for-ipv6-route-c.patch
>>> deleted file mode 100644
>>> index 5715378..0000000
>>> --- a/meta/recipes-core/busybox/busybox-1.24.1/ifupdown-pass-interface-device-name-for-ipv6-route-c.patch
>>> +++ /dev/null
>>> @@ -1,52 +0,0 @@
>>> -From 06fcf98f6ca40dc6b823d7d6231a240a1794ef2d Mon Sep 17 00:00:00 2001
>>> -From: Haiqing Bai <Haiqing.Bai at windriver.com>
>>> -Date: Tue, 28 Feb 2017 10:40:37 +0800
>>> -Subject: [PATCH] ifupdown: pass interface device name for ipv6 route commands
>>> -MIME-Version: 1.0
>>> -Content-Type: text/plain; charset=UTF-8
>>> -Content-Transfer-Encoding: 8bit
>>> -
>>> -commit 028524317d8d0011ed38e86e507a06738a5b5a97 from upstream
>>> -
>>> -IPv6 routes need the device argument for link-local routes, or they
>>> -cannot be used at all. E.g. "gateway fe80::def" seems to be used in
>>> -some places, but kernel refuses to insert the route unless device
>>> -name is explicitly specified in the route addition.
>>> -
>>> -Signed-off-by: Timo Teräs <timo.teras at iki.fi>
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -
>>> -Upstream-Status: Backport
>>> -Signed-off-by: Haiqing Bai <Haiqing.Bai at windriver.com>
>>> ----
>>> - networking/ifupdown.c | 7 ++++---
>>> - 1 file changed, 4 insertions(+), 3 deletions(-)
>>> -
>>> -diff --git a/networking/ifupdown.c b/networking/ifupdown.c
>>> -index 17bc4e9..a00f68d 100644
>>> ---- a/networking/ifupdown.c
>>> -+++ b/networking/ifupdown.c
>>> -@@ -394,8 +394,8 @@ static int FAST_FUNC static_up6(struct interface_defn_t *ifd, execfn *exec)
>>> - # if ENABLE_FEATURE_IFUPDOWN_IP
>>> - 	result = execute("ip addr add %address%/%netmask% dev %iface%[[ label %label%]]", ifd, exec);
>>> - 	result += execute("ip link set[[ mtu %mtu%]][[ addr %hwaddress%]] %iface% up", ifd, exec);
>>> --	/* Was: "[[ ip ....%gateway% ]]". Removed extra spaces w/o checking */
>>> --	result += execute("[[ip route add ::/0 via %gateway%]][[ metric %metric%]]", ifd, exec);
>>> -+	/* Reportedly, IPv6 needs "dev %iface%", but IPv4 does not: */
>>> -+	result += execute("[[ip route add ::/0 via %gateway% dev %iface%]][[ metric %metric%]]", ifd, exec);
>>> - # else
>>> - 	result = execute("ifconfig %iface%[[ media %media%]][[ hw %hwaddress%]][[ mtu %mtu%]] up", ifd, exec);
>>> - 	result += execute("ifconfig %iface% add %address%/%netmask%", ifd, exec);
>>> -@@ -421,7 +421,8 @@ static int FAST_FUNC v4tunnel_up(struct interface_defn_t *ifd, execfn *exec)
>>> - 			"%endpoint%[[ local %local%]][[ ttl %ttl%]]", ifd, exec);
>>> - 	result += execute("ip link set %iface% up", ifd, exec);
>>> - 	result += execute("ip addr add %address%/%netmask% dev %iface%", ifd, exec);
>>> --	result += execute("[[ip route add ::/0 via %gateway%]]", ifd, exec);
>>> -+	/* Reportedly, IPv6 needs "dev %iface%", but IPv4 does not: */
>>> -+	result += execute("[[ip route add ::/0 via %gateway% dev %iface%]]", ifd, exec);
>>> - 	return ((result == 4) ? 4 : 0);
>>> - }
>>> -
>>> ---
>>> -1.9.1
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox.inc b/meta/recipes-core/busybox/busybox.inc
>>> index 48910ca..86f0c60 100644
>>> --- a/meta/recipes-core/busybox/busybox.inc
>>> +++ b/meta/recipes-core/busybox/busybox.inc
>>> @@ -156,6 +156,12 @@ do_compile() {
>>>    		cp .config .config.orig
>>>    		oe_runmake busybox.cfg.suid
>>>    		oe_runmake busybox.cfg.nosuid
>>> +
>>> +		# workaround for suid bug 10346
>>> +		if ! grep -q "CONFIG_SH_IS_NONE" busybox.cfg.nosuid; then
>>> +			echo "CONFIG_SH_IS_NONE" >> busybox.cfg.suid
>>> +		fi
>>> +
>>>    		for i in `cat busybox.cfg.suid busybox.cfg.nosuid`; do
>>>    			echo "# $i is not set" >> .config.disable.apps
>>>    		done
>>> @@ -165,6 +171,12 @@ do_compile() {
>>>    			cat busybox.cfg.$s | while read item; do
>>>    				grep -w "$item" .config.orig
>>>    			done > .config.app.$s
>>> +
>>> +			# workaround for suid bug 10346
>>> +			if [ "$s" == "suid" ] ; then
>>> +				sed "s/.*CONFIG_SH_IS_NONE.*$/CONFIG_SH_IS_NONE=y/" -i .config.app.suid
>>> +			fi
>>> +
>>>    			merge_config.sh -m .config.nonapps .config.app.$s
>>>    			oe_runmake busybox_unstripped
>>>    			mv busybox_unstripped busybox.$s
>>> @@ -204,7 +216,7 @@ do_install () {
>>>    			install -m 0755 ${B}/busybox.nosuid ${D}${base_bindir}
>>>    			install -m 0644 ${S}/busybox.links.suid ${D}${sysconfdir}
>>>    			install -m 0644 ${S}/busybox.links.nosuid ${D}${sysconfdir}
>>> -			if grep -q "CONFIG_FEATURE_SH_IS_ASH=y" ${B}/.config; then
>>> +			if grep -q "CONFIG_SH_IS_ASH=y" ${B}/.config; then
>>>    				ln -sf busybox.nosuid ${D}${base_bindir}/sh
>>>    			fi
>>>    			# Keep a default busybox for people who want to invoke busybox directly.
>>> @@ -218,7 +230,7 @@ do_install () {
>>>    				install -m 0755 ${B}/busybox ${D}${base_bindir}
>>>    			fi
>>>    			install -m 0644 ${S}/busybox.links ${D}${sysconfdir}
>>> -			if grep -q "CONFIG_FEATURE_SH_IS_ASH=y" ${B}/.config; then
>>> +			if grep -q "CONFIG_SH_IS_ASH=y" ${B}/.config; then
>>>    				ln -sf busybox ${D}${base_bindir}/sh
>>>    			fi
>>>    			# We make this symlink here to eliminate the error when upgrading together
>>> diff --git a/meta/recipes-core/busybox/busybox/0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch b/meta/recipes-core/busybox/busybox/0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch
>>> deleted file mode 100644
>>> index 78520f0..0000000
>>> --- a/meta/recipes-core/busybox/busybox/0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch
>>> +++ /dev/null
>>> @@ -1,64 +0,0 @@
>>> -From e1d426fd65c00a6d01a10d85edf8a294ae8a2d2b Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Sun, 24 Apr 2016 18:19:49 +0200
>>> -Subject: [PATCH] flock: fix -c; improve error handling of fork+exec
>>> -
>>> -function                                             old     new   delta
>>> -flock_main                                           254     334     +80
>>> -
>>> -Upstream-Status: Backport
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Signed-off-by: Maxin B. John <maxin.john at intel.com>
>>> ----
>>> - util-linux/flock.c | 19 +++++++++++++++++--
>>> - 1 file changed, 17 insertions(+), 2 deletions(-)
>>> -
>>> -diff --git a/util-linux/flock.c b/util-linux/flock.c
>>> -index 05a747f..539a835 100644
>>> ---- a/util-linux/flock.c
>>> -+++ b/util-linux/flock.c
>>> -@@ -57,7 +57,6 @@ int flock_main(int argc UNUSED_PARAM, char **argv)
>>> - 	/* If it is "flock FILE -c PROG", then -c isn't caught by getopt32:
>>> - 	 * we use "+" in order to support "flock -opt FILE PROG -with-opts",
>>> - 	 * we need to remove -c by hand.
>>> --	 * TODO: in upstream, -c 'PROG ARGS' means "run sh -c 'PROG ARGS'"
>>> - 	 */
>>> - 	if (argv[0]
>>> - 	 && argv[0][0] == '-'
>>> -@@ -66,6 +65,9 @@ int flock_main(int argc UNUSED_PARAM, char **argv)
>>> - 	    )
>>> - 	) {
>>> - 		argv++;
>>> -+		if (argv[1])
>>> -+			bb_error_msg_and_die("-c takes only one argument");
>>> -+		opt |= OPT_c;
>>> - 	}
>>> -
>>> - 	if (OPT_s == LOCK_SH && OPT_x == LOCK_EX && OPT_n == LOCK_NB && OPT_u == LOCK_UN) {
>>> -@@ -90,8 +92,21 @@ int flock_main(int argc UNUSED_PARAM, char **argv)
>>> - 		bb_perror_nomsg_and_die();
>>> - 	}
>>> -
>>> --	if (argv[0])
>>> -+	if (argv[0]) {
>>> -+		if (!(opt & OPT_c)) {
>>> -+			int rc = spawn_and_wait(argv);
>>> -+			if (rc < 0)
>>> -+				bb_simple_perror_msg(argv[0]);
>>> -+			return rc;
>>> -+		}
>>> -+		/* -c 'PROG ARGS' means "run sh -c 'PROG ARGS'" */
>>> -+		argv -= 2;
>>> -+		argv[0] = (char*)get_shell_name();
>>> -+		argv[1] = (char*)"-c";
>>> -+		/* argv[2] = "PROG ARGS"; */
>>> -+		/* argv[3] = NULL; */
>>> - 		return spawn_and_wait(argv);
>>> -+	}
>>> -
>>> - 	return EXIT_SUCCESS;
>>> - }
>>> ---
>>> -2.4.0
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/0001-ip-fix-an-improper-optimization-req.r.rtm_scope-may-.patch b/meta/recipes-core/busybox/busybox/0001-ip-fix-an-improper-optimization-req.r.rtm_scope-may-.patch
>>> deleted file mode 100644
>>> index 812a507..0000000
>>> --- a/meta/recipes-core/busybox/busybox/0001-ip-fix-an-improper-optimization-req.r.rtm_scope-may-.patch
>>> +++ /dev/null
>>> @@ -1,33 +0,0 @@
>>> -From 34ecc3b7aefdd6c31e8691bd5485037bbabedbd4 Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Sun, 14 Aug 2016 01:30:34 +0200
>>> -Subject: [PATCH] ip: fix an improper optimization: req.r.rtm_scope may be
>>> - nonzero here
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> ----
>>> -Upstream-Status: Backport
>>> -Signed-off-by: André Draszik <adraszik at tycoint.com>
>>> -
>>> - networking/libiproute/iproute.c | 3 +--
>>> - 1 file changed, 1 insertion(+), 2 deletions(-)
>>> -
>>> -diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c
>>> -index e674e9a0d..48dc6e3d9 100644
>>> ---- a/networking/libiproute/iproute.c
>>> -+++ b/networking/libiproute/iproute.c
>>> -@@ -362,10 +362,9 @@ IF_FEATURE_IP_RULE(ARG_table,)
>>> - 		req.r.rtm_scope = RT_SCOPE_NOWHERE;
>>> -
>>> - 	if (cmd != RTM_DELROUTE) {
>>> -+		req.r.rtm_scope = RT_SCOPE_UNIVERSE;
>>> - 		if (RTPROT_BOOT != 0)
>>> - 			req.r.rtm_protocol = RTPROT_BOOT;
>>> --		if (RT_SCOPE_UNIVERSE != 0)
>>> --			req.r.rtm_scope = RT_SCOPE_UNIVERSE;
>>> - 		if (RTN_UNICAST != 0)
>>> - 			req.r.rtm_type = RTN_UNICAST;
>>> - 	}
>>> ---
>>> -2.11.0
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/0001-iproute-support-scope-.-Closes-8561.patch b/meta/recipes-core/busybox/busybox/0001-iproute-support-scope-.-Closes-8561.patch
>>> deleted file mode 100644
>>> index 66bc76e..0000000
>>> --- a/meta/recipes-core/busybox/busybox/0001-iproute-support-scope-.-Closes-8561.patch
>>> +++ /dev/null
>>> @@ -1,122 +0,0 @@
>>> -From ce4bc1ed048233e89ee4cb95830bf6f01d523d1e Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Wed, 30 Dec 2015 17:32:51 +0100
>>> -Subject: [PATCH] iproute: support "scope". Closes 8561
>>> -
>>> -function                                             old     new   delta
>>> -iproute_modify                                      1051    1120     +69
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -
>>> -Upstream-Status: Backport
>>> -Modified patch to build against busybox 1.24.1:
>>> -- s/invarg_1_to_2/invarg
>>> -Signed-off-by: André Draszik <adraszik at tycoint.com>
>>> ----
>>> - networking/libiproute/iproute.c | 52 ++++++++++++++++++++++++++---------------
>>> - 1 file changed, 33 insertions(+), 19 deletions(-)
>>> -
>>> -diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c
>>> -index d232ee6fd..82827488f 100644
>>> ---- a/networking/libiproute/iproute.c
>>> -+++ b/networking/libiproute/iproute.c
>>> -@@ -313,12 +313,13 @@ static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
>>> - static int iproute_modify(int cmd, unsigned flags, char **argv)
>>> - {
>>> - 	static const char keywords[] ALIGN1 =
>>> --		"src\0""via\0""mtu\0""lock\0""protocol\0"IF_FEATURE_IP_RULE("table\0")
>>> -+		"src\0""via\0""mtu\0""lock\0""scope\0""protocol\0"IF_FEATURE_IP_RULE("table\0")
>>> - 		"dev\0""oif\0""to\0""metric\0""onlink\0";
>>> - 	enum {
>>> - 		ARG_src,
>>> - 		ARG_via,
>>> - 		ARG_mtu, PARM_lock,
>>> -+		ARG_scope,
>>> - 		ARG_protocol,
>>> - IF_FEATURE_IP_RULE(ARG_table,)
>>> - 		ARG_dev,
>>> -@@ -344,6 +345,7 @@ IF_FEATURE_IP_RULE(ARG_table,)
>>> - 	unsigned mxlock = 0;
>>> - 	char *d = NULL;
>>> - 	smalluint ok = 0;
>>> -+	smalluint scope_ok = 0;
>>> - 	int arg;
>>> -
>>> - 	memset(&req, 0, sizeof(req));
>>> -@@ -352,15 +354,18 @@ IF_FEATURE_IP_RULE(ARG_table,)
>>> - 	req.n.nlmsg_flags = NLM_F_REQUEST | flags;
>>> - 	req.n.nlmsg_type = cmd;
>>> - 	req.r.rtm_family = preferred_family;
>>> --	if (RT_TABLE_MAIN) /* if it is zero, memset already did it */
>>> -+	if (RT_TABLE_MAIN != 0) /* if it is zero, memset already did it */
>>> - 		req.r.rtm_table = RT_TABLE_MAIN;
>>> --	if (RT_SCOPE_NOWHERE)
>>> -+	if (RT_SCOPE_NOWHERE != 0)
>>> - 		req.r.rtm_scope = RT_SCOPE_NOWHERE;
>>> -
>>> - 	if (cmd != RTM_DELROUTE) {
>>> --		req.r.rtm_protocol = RTPROT_BOOT;
>>> --		req.r.rtm_scope = RT_SCOPE_UNIVERSE;
>>> --		req.r.rtm_type = RTN_UNICAST;
>>> -+		if (RTPROT_BOOT != 0)
>>> -+			req.r.rtm_protocol = RTPROT_BOOT;
>>> -+		if (RT_SCOPE_UNIVERSE != 0)
>>> -+			req.r.rtm_scope = RT_SCOPE_UNIVERSE;
>>> -+		if (RTN_UNICAST != 0)
>>> -+			req.r.rtm_type = RTN_UNICAST;
>>> - 	}
>>> -
>>> - 	mxrta->rta_type = RTA_METRICS;
>>> -@@ -393,6 +398,13 @@ IF_FEATURE_IP_RULE(ARG_table,)
>>> - 			}
>>> - 			mtu = get_unsigned(*argv, "mtu");
>>> - 			rta_addattr32(mxrta, sizeof(mxbuf), RTAX_MTU, mtu);
>>> -+		} else if (arg == ARG_scope) {
>>> -+			uint32_t scope;
>>> -+			NEXT_ARG();
>>> -+			if (rtnl_rtscope_a2n(&scope, *argv))
>>> -+				invarg(*argv, "scope");
>>> -+			req.r.rtm_scope = scope;
>>> -+			scope_ok = 1;
>>> - 		} else if (arg == ARG_protocol) {
>>> - 			uint32_t prot;
>>> - 			NEXT_ARG();
>>> -@@ -469,20 +481,22 @@ IF_FEATURE_IP_RULE(ARG_table,)
>>> - 		addattr_l(&req.n, sizeof(req), RTA_METRICS, RTA_DATA(mxrta), RTA_PAYLOAD(mxrta));
>>> - 	}
>>> -
>>> --	if (req.r.rtm_type == RTN_LOCAL || req.r.rtm_type == RTN_NAT)
>>> --		req.r.rtm_scope = RT_SCOPE_HOST;
>>> --	else
>>> --	if (req.r.rtm_type == RTN_BROADCAST
>>> --	 || req.r.rtm_type == RTN_MULTICAST
>>> --	 || req.r.rtm_type == RTN_ANYCAST
>>> --	) {
>>> --		req.r.rtm_scope = RT_SCOPE_LINK;
>>> --	}
>>> --	else if (req.r.rtm_type == RTN_UNICAST || req.r.rtm_type == RTN_UNSPEC) {
>>> --		if (cmd == RTM_DELROUTE)
>>> --			req.r.rtm_scope = RT_SCOPE_NOWHERE;
>>> --		else if (!(ok & gw_ok))
>>> -+	if (!scope_ok) {
>>> -+		if (req.r.rtm_type == RTN_LOCAL || req.r.rtm_type == RTN_NAT)
>>> -+			req.r.rtm_scope = RT_SCOPE_HOST;
>>> -+		else
>>> -+		if (req.r.rtm_type == RTN_BROADCAST
>>> -+		 || req.r.rtm_type == RTN_MULTICAST
>>> -+		 || req.r.rtm_type == RTN_ANYCAST
>>> -+		) {
>>> - 			req.r.rtm_scope = RT_SCOPE_LINK;
>>> -+		}
>>> -+		else if (req.r.rtm_type == RTN_UNICAST || req.r.rtm_type == RTN_UNSPEC) {
>>> -+			if (cmd == RTM_DELROUTE)
>>> -+				req.r.rtm_scope = RT_SCOPE_NOWHERE;
>>> -+			else if (!(ok & gw_ok))
>>> -+				req.r.rtm_scope = RT_SCOPE_LINK;
>>> -+		}
>>> - 	}
>>> -
>>> - 	if (req.r.rtm_family == AF_UNSPEC) {
>>> ---
>>> -2.11.0
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/0001-libiproute-handle-table-ids-larger-than-255.patch b/meta/recipes-core/busybox/busybox/0001-libiproute-handle-table-ids-larger-than-255.patch
>>> deleted file mode 100644
>>> index aac5b40..0000000
>>> --- a/meta/recipes-core/busybox/busybox/0001-libiproute-handle-table-ids-larger-than-255.patch
>>> +++ /dev/null
>>> @@ -1,134 +0,0 @@
>>> -From b5a9234272e6084557224c73ab7737ed47f09848 Mon Sep 17 00:00:00 2001
>>> -From: Lukasz Nowak <lnowak at tycoint.com>
>>> -Date: Wed, 23 Nov 2016 12:48:21 +0000
>>> -Subject: [PATCH v2] libiproute: handle table ids larger than 255
>>> -
>>> -Linux kernel, starting from 2.6.19 allows ip table ids to have 32-bit values.
>>> -In order to preserve compatibility, the old 8-bit field: rtm_table is still
>>> -in use when table id is lower than 256.
>>> -
>>> -Add support for the 32-bit table id (RTA_TABLE attribute) in:
>>> -- ip route print
>>> -- ip route modify
>>> -- ip rule print
>>> -- ip rule modify
>>> -
>>> -Add printing of table ids to ip route.
>>> -
>>> -Changes are compatible with the mainline iproute2 utilities.
>>> -
>>> -These changes are required for compatibility with ConnMan, which by default
>>> -uses table ids greater than 255.
>>> -
>>> -Upstream-Status: Submitted [http://lists.busybox.net/pipermail/busybox/2016-December/084989.html]
>>> -
>>> -Signed-off-by: Lukasz Nowak <lnowak at tycoint.com>
>>> ----
>>> - networking/libiproute/iproute.c | 24 ++++++++++++++++++++----
>>> - networking/libiproute/iprule.c  | 11 +++++++++--
>>> - 2 files changed, 29 insertions(+), 6 deletions(-)
>>> -
>>> -diff --git a/networking/libiproute/iproute.c b/networking/libiproute/iproute.c
>>> -index 6ecd5f7..d5af498 100644
>>> ---- a/networking/libiproute/iproute.c
>>> -+++ b/networking/libiproute/iproute.c
>>> -@@ -87,6 +87,7 @@ static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
>>> - 	inet_prefix dst;
>>> - 	inet_prefix src;
>>> - 	int host_len = -1;
>>> -+	uint32_t tid;
>>> -
>>> - 	if (n->nlmsg_type != RTM_NEWROUTE && n->nlmsg_type != RTM_DELROUTE) {
>>> - 		fprintf(stderr, "Not a route: %08x %08x %08x\n",
>>> -@@ -99,6 +100,14 @@ static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
>>> - 	if (len < 0)
>>> - 		bb_error_msg_and_die("wrong nlmsg len %d", len);
>>> -
>>> -+	memset(tb, 0, sizeof(tb));
>>> -+	parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len);
>>> -+
>>> -+	if (tb[RTA_TABLE])
>>> -+		tid = *(uint32_t *)RTA_DATA(tb[RTA_TABLE]);
>>> -+	else
>>> -+		tid = r->rtm_table;
>>> -+
>>> - 	if (r->rtm_family == AF_INET6)
>>> - 		host_len = 128;
>>> - 	else if (r->rtm_family == AF_INET)
>>> -@@ -128,7 +137,7 @@ static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
>>> - 			}
>>> - 		}
>>> - 	} else {
>>> --		if (G_filter.tb > 0 && G_filter.tb != r->rtm_table) {
>>> -+		if (G_filter.tb > 0 && G_filter.tb != tid) {
>>> - 			return 0;
>>> - 		}
>>> - 	}
>>> -@@ -157,10 +166,8 @@ static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
>>> - 		return 0;
>>> - 	}
>>> -
>>> --	memset(tb, 0, sizeof(tb));
>>> - 	memset(&src, 0, sizeof(src));
>>> - 	memset(&dst, 0, sizeof(dst));
>>> --	parse_rtattr(tb, RTA_MAX, RTM_RTA(r), len);
>>> -
>>> - 	if (tb[RTA_SRC]) {
>>> - 		src.bitlen = r->rtm_src_len;
>>> -@@ -283,6 +290,10 @@ static int FAST_FUNC print_route(const struct sockaddr_nl *who UNUSED_PARAM,
>>> - 	if (tb[RTA_OIF]) {
>>> - 		printf("dev %s ", ll_index_to_name(*(int*)RTA_DATA(tb[RTA_OIF])));
>>> - 	}
>>> -+#if ENABLE_FEATURE_IP_RULE
>>> -+	if (tid && tid != RT_TABLE_MAIN && !G_filter.tb)
>>> -+		printf("table %s ", rtnl_rttable_n2a(tid));
>>> -+#endif
>>> -
>>> - 	/* Todo: parse & show "proto kernel", "scope link" here */
>>> -
>>> -@@ -434,7 +445,12 @@ IF_FEATURE_IP_RULE(ARG_table,)
>>> - 			NEXT_ARG();
>>> - 			if (rtnl_rttable_a2n(&tid, *argv))
>>> - 				invarg(*argv, "table");
>>> --			req.r.rtm_table = tid;
>>> -+			if (tid < 256)
>>> -+				req.r.rtm_table = tid;
>>> -+			else {
>>> -+				req.r.rtm_table = RT_TABLE_UNSPEC;
>>> -+				addattr32(&req.n, sizeof(req), RTA_TABLE, tid);
>>> -+			}
>>> - #endif
>>> - 		} else if (arg == ARG_dev || arg == ARG_oif) {
>>> - 			NEXT_ARG();
>>> -diff --git a/networking/libiproute/iprule.c b/networking/libiproute/iprule.c
>>> -index 774a3e2..3fac7c5 100644
>>> ---- a/networking/libiproute/iprule.c
>>> -+++ b/networking/libiproute/iprule.c
>>> -@@ -119,7 +119,9 @@ static int FAST_FUNC print_rule(const struct sockaddr_nl *who UNUSED_PARAM,
>>> - 		printf("iif %s ", (char*)RTA_DATA(tb[RTA_IIF]));
>>> - 	}
>>> -
>>> --	if (r->rtm_table)
>>> -+	if (tb[RTA_TABLE])
>>> -+		printf("lookup %s ", rtnl_rttable_n2a(*(uint32_t*)RTA_DATA(tb[RTA_TABLE])));
>>> -+	else if (r->rtm_table)
>>> - 		printf("lookup %s ", rtnl_rttable_n2a(r->rtm_table));
>>> -
>>> - 	if (tb[RTA_FLOW]) {
>>> -@@ -259,7 +261,12 @@ static int iprule_modify(int cmd, char **argv)
>>> - 			NEXT_ARG();
>>> - 			if (rtnl_rttable_a2n(&tid, *argv))
>>> - 				invarg(*argv, "table ID");
>>> --			req.r.rtm_table = tid;
>>> -+			if (tid < 256)
>>> -+				req.r.rtm_table = tid;
>>> -+			else {
>>> -+				req.r.rtm_table = RT_TABLE_UNSPEC;
>>> -+				addattr32(&req.n, sizeof(req), RTA_TABLE, tid);
>>> -+			}
>>> - 			table_ok = 1;
>>> - 		} else if (key == ARG_dev ||
>>> - 			   key == ARG_iif
>>> ---
>>> -2.7.4
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch b/meta/recipes-core/busybox/busybox/0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch
>>> deleted file mode 100644
>>> index 4f53984..0000000
>>> --- a/meta/recipes-core/busybox/busybox/0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch
>>> +++ /dev/null
>>> @@ -1,72 +0,0 @@
>>> -From 903542f7331c58007a3ef938d41e1c55fc329648 Mon Sep 17 00:00:00 2001
>>> -From: Dengke Du <dengke.du at windriver.com>
>>> -Date: Wed, 31 Aug 2016 23:40:43 -0400
>>> -Subject: [PATCH] sed: fix "sed n (flushes pattern space, terminates early)"
>>> - testcase failure
>>> -
>>> -This patch fix "sed n (flushes pattern space, terminates early)"
>>> -testcase failure. We can see it at:
>>> -
>>> -	https://git.busybox.net/busybox/commit/?id=76d72376e0244a5cafd4880cdc623e37d86a75e4
>>> -
>>> -Upstream-Status: Backport
>>> -
>>> -Signed-off-by: Dengke Du <dengke.du at windriver.com>
>>> ----
>>> - editors/sed.c       | 19 ++++++++++---------
>>> - testsuite/sed.tests |  6 +-----
>>> - 2 files changed, 11 insertions(+), 14 deletions(-)
>>> -
>>> -diff --git a/editors/sed.c b/editors/sed.c
>>> -index 7bbf820..259c39c 100644
>>> ---- a/editors/sed.c
>>> -+++ b/editors/sed.c
>>> -@@ -1274,16 +1274,17 @@ static void process_files(void)
>>> - 		case 'n':
>>> - 			if (!G.be_quiet)
>>> - 				sed_puts(pattern_space, last_gets_char);
>>> --			if (next_line) {
>>> --				free(pattern_space);
>>> --				pattern_space = next_line;
>>> --				last_gets_char = next_gets_char;
>>> --				next_line = get_next_line(&next_gets_char, &last_puts_char, last_gets_char);
>>> --				substituted = 0;
>>> --				linenum++;
>>> --				break;
>>> -+			if (next_line == NULL) {
>>> -+				/* If no next line, jump to end of script and exit. */
>>> -+				goto discard_line;
>>> - 			}
>>> --			/* fall through */
>>> -+			free(pattern_space);
>>> -+			pattern_space = next_line;
>>> -+			last_gets_char = next_gets_char;
>>> -+			next_line = get_next_line(&next_gets_char, &last_puts_char, last_gets_char);
>>> -+			substituted = 0;
>>> -+			linenum++;
>>> -+			break;
>>> -
>>> - 		/* Quit.  End of script, end of input. */
>>> - 		case 'q':
>>> -diff --git a/testsuite/sed.tests b/testsuite/sed.tests
>>> -index 34479e5..96ff7a5 100755
>>> ---- a/testsuite/sed.tests
>>> -+++ b/testsuite/sed.tests
>>> -@@ -73,13 +73,9 @@ testing "sed t (test/branch clears test bit)" "sed -e 's/a/b/;:loop;t loop'" \
>>> - testing "sed T (!test/branch)" "sed -e 's/a/1/;T notone;p;: notone;p'" \
>>> - 	"1\n1\n1\nb\nb\nc\nc\n" "" "a\nb\nc\n"
>>> -
>>> --test x"$SKIP_KNOWN_BUGS" = x"" && {
>>> --# Normal sed end-of-script doesn't print "c" because n flushed the pattern
>>> --# space.  If n hits EOF, pattern space is empty when script ends.
>>> --# Query: how does this interact with no newline at EOF?
>>> - testing "sed n (flushes pattern space, terminates early)" "sed -e 'n;p'" \
>>> - 	"a\nb\nb\nc\n" "" "a\nb\nc\n"
>>> --}
>>> -+
>>> - # non-GNU sed: N does _not_ flush pattern space, therefore c is eaten @ script end
>>> - # GNU sed: N flushes pattern space, therefore c is printed too @ script end
>>> - testing "sed N (flushes pattern space (GNU behavior))" "sed -e 'N;p'" \
>>> ---
>>> -2.8.1
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/BUG9071_buffer_overflow_arp.patch b/meta/recipes-core/busybox/busybox/BUG9071_buffer_overflow_arp.patch
>>> deleted file mode 100644
>>> index 828694c..0000000
>>> --- a/meta/recipes-core/busybox/busybox/BUG9071_buffer_overflow_arp.patch
>>> +++ /dev/null
>>> @@ -1,53 +0,0 @@
>>> -busybox1.24.1: Fix busybox - (local) cmdline stack buffer overwrite
>>> -
>>> -[No upstream tracking] -- https://bugs.busybox.net/show_bug.cgi?id=9071
>>> -
>>> -busybox - (local) cmdline stack buffer overwrite
>>> -
>>> -Busybox provides an `arp` applet which is missing an array bounds check for
>>> -command-line parameter `IFNAME`. It is therefore vulnerable to a command-line
>>> -based local stack buffer overwrite effectively allowing local users to write
>>> -past a 16 bytes fixed stack buffer. This leads to two scenarios, one (A) where
>>> -an IOCTL for GET_HW_ADDRESS (`SIOCGIFHWADDR`) fails and results in a corrupted
>>> -`va_list` being passed to `*printf()` and one (B) where an attacker might provide
>>> -valid params for the IOCTL and trick the program to proceed and result in a
>>> -`RET eip overwrite` eventually gaining code execution.
>>> -
>>> -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/networking/arp.c?id=88e2b1cb626761b1924305b761a5dfc723613c4e]
>>> -BUG: BUG9071
>>> -Signed-off-by: Martin Balik <martin.balik at siemens.com>
>>> -Signed-off-by: Pascal Bach <pascal.bach at siemens.com>
>>> -
>>> ---
>>> -
>>> -diff --git a/networking/arp.c b/networking/arp.c
>>> -index 0099aa5..87eb327 100644
>>> ---- a/networking/arp.c
>>> -+++ b/networking/arp.c
>>> -@@ -176,7 +176,7 @@ static int arp_del(char **args)
>>> - 	if (flags == 0)
>>> - 		flags = 3;
>>> -
>>> --	strncpy(req.arp_dev, device, sizeof(req.arp_dev));
>>> -+	strncpy_IFNAMSIZ(req.arp_dev, device);
>>> -
>>> - 	err = -1;
>>> -
>>> -@@ -217,7 +217,7 @@ static void arp_getdevhw(char *ifname, struct sockaddr *sa)
>>> - 	struct ifreq ifr;
>>> - 	const struct hwtype *xhw;
>>> -
>>> --	strcpy(ifr.ifr_name, ifname);
>>> -+	strncpy_IFNAMSIZ(ifr.ifr_name, ifname);
>>> - 	ioctl_or_perror_and_die(sockfd, SIOCGIFHWADDR, &ifr,
>>> - 					"can't get HW-Address for '%s'", ifname);
>>> - 	if (hw_set && (ifr.ifr_hwaddr.sa_family != hw->type)) {
>>> -@@ -330,7 +330,7 @@ static int arp_set(char **args)
>>> - 	/* Fill in the remainder of the request. */
>>> - 	req.arp_flags = flags;
>>> -
>>> --	strncpy(req.arp_dev, device, sizeof(req.arp_dev));
>>> -+	strncpy_IFNAMSIZ(req.arp_dev, device);
>>> -
>>> - 	/* Call the kernel. */
>>> - 	if (option_mask32 & ARP_OPT_v)
>>> diff --git a/meta/recipes-core/busybox/busybox/CVE-2016-2147.patch b/meta/recipes-core/busybox/busybox/CVE-2016-2147.patch
>>> deleted file mode 100644
>>> index 84cae6a..0000000
>>> --- a/meta/recipes-core/busybox/busybox/CVE-2016-2147.patch
>>> +++ /dev/null
>>> @@ -1,57 +0,0 @@
>>> -From d474ffc68290e0a83651c4432eeabfa62cd51e87 Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Thu, 10 Mar 2016 11:47:58 +0100
>>> -Subject: [PATCH] udhcp: fix a SEGV on malformed RFC1035-encoded domain name
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -
>>> -Upstream-Status: Backport
>>> -CVE: CVE-2016-2147
>>> -
>>> -https://git.busybox.net/busybox/commit/?id=d474ffc
>>> -Signed-off-by: Armin Kuster <akuster at mvista.com>
>>> -
>>> ----
>>> - networking/udhcp/domain_codec.c | 13 +++++++++----
>>> - 1 file changed, 9 insertions(+), 4 deletions(-)
>>> -
>>> -Index: busybox-1.23.2/networking/udhcp/domain_codec.c
>>> -===================================================================
>>> ---- busybox-1.23.2.orig/networking/udhcp/domain_codec.c
>>> -+++ busybox-1.23.2/networking/udhcp/domain_codec.c
>>> -@@ -63,11 +63,10 @@ char* FAST_FUNC dname_dec(const uint8_t
>>> - 				if (crtpos + *c + 1 > clen) /* label too long? abort */
>>> - 					return NULL;
>>> - 				if (dst)
>>> --					memcpy(dst + len, c + 1, *c);
>>> -+					/* \3com ---> "com." */
>>> -+					((char*)mempcpy(dst + len, c + 1, *c))[0] = '.';
>>> - 				len += *c + 1;
>>> - 				crtpos += *c + 1;
>>> --				if (dst)
>>> --					dst[len - 1] = '.';
>>> - 			} else {
>>> - 				/* NUL: end of current domain name */
>>> - 				if (retpos == 0) {
>>> -@@ -78,7 +77,10 @@ char* FAST_FUNC dname_dec(const uint8_t
>>> - 					crtpos = retpos;
>>> - 					retpos = depth = 0;
>>> - 				}
>>> --				if (dst)
>>> -+				if (dst && len != 0)
>>> -+					/* \4host\3com\0\4host and we are at \0:
>>> -+					 * \3com was converted to "com.", change dot to space.
>>> -+					 */
>>> - 					dst[len - 1] = ' ';
>>> - 			}
>>> -
>>> -@@ -228,6 +230,9 @@ int main(int argc, char **argv)
>>> - 	int len;
>>> - 	uint8_t *encoded;
>>> -
>>> -+        uint8_t str[6] = { 0x00, 0x00, 0x02, 0x65, 0x65, 0x00 };
>>> -+        printf("NUL:'%s'\n",   dname_dec(str, 6, ""));
>>> -+
>>> - #define DNAME_DEC(encoded,pre) dname_dec((uint8_t*)(encoded), sizeof(encoded), (pre))
>>> - 	printf("'%s'\n",       DNAME_DEC("\4host\3com\0", "test1:"));
>>> - 	printf("test2:'%s'\n", DNAME_DEC("\4host\3com\0\4host\3com\0", ""));
>>> diff --git a/meta/recipes-core/busybox/busybox/CVE-2016-2147_2.patch b/meta/recipes-core/busybox/busybox/CVE-2016-2147_2.patch
>>> deleted file mode 100644
>>> index b8349c0..0000000
>>> --- a/meta/recipes-core/busybox/busybox/CVE-2016-2147_2.patch
>>> +++ /dev/null
>>> @@ -1,32 +0,0 @@
>>> -From 1b7c17391de66502dd7a97c866e0a33681edbb1f Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Fri, 11 Mar 2016 00:26:58 +0100
>>> -Subject: [PATCH] udhcpc: fix a warning in debug code
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Upstream-Status: Backport
>>> -CVE: CVE-2016-2147 regression fix
>>> -
>>> -https://git.busybox.net/busybox/commit/?id=1b7c17
>>> -
>>> -Signed-off-by: Armin Kuster <akuster at mvista.com>
>>> -
>>> ----
>>> - networking/udhcp/domain_codec.c | 1 +
>>> - 1 file changed, 1 insertion(+)
>>> -
>>> -diff --git a/networking/udhcp/domain_codec.c b/networking/udhcp/domain_codec.c
>>> -index cee31f1..5a923cc 100644
>>> ---- a/networking/udhcp/domain_codec.c
>>> -+++ b/networking/udhcp/domain_codec.c
>>> -@@ -7,6 +7,7 @@
>>> -  * Licensed under GPLv2 or later, see file LICENSE in this source tree.
>>> -  */
>>> - #ifdef DNS_COMPR_TESTING
>>> -+# define _GNU_SOURCE
>>> - # define FAST_FUNC /* nothing */
>>> - # define xmalloc malloc
>>> - # include <stdlib.h>
>>> ---
>>> -2.3.5
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/CVE-2016-2148.patch b/meta/recipes-core/busybox/busybox/CVE-2016-2148.patch
>>> deleted file mode 100644
>>> index af04a7f..0000000
>>> --- a/meta/recipes-core/busybox/busybox/CVE-2016-2148.patch
>>> +++ /dev/null
>>> @@ -1,74 +0,0 @@
>>> -From 352f79acbd759c14399e39baef21fc4ffe180ac2 Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Fri, 26 Feb 2016 15:54:56 +0100
>>> -Subject: [PATCH] udhcpc: fix OPTION_6RD parsing (could overflow its malloced
>>> - buffer)
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -
>>> -Upstream-Status: Backport
>>> -CVE: CVE-2016-2148
>>> -https://git.busybox.net/busybox/commit/?id=352f79
>>> -
>>> -Signed-off-by: Armin Kuster <akuster at mvista.com>
>>> -
>>> ----
>>> - networking/udhcp/common.c | 15 +++++++++++++--
>>> - networking/udhcp/dhcpc.c  |  4 ++--
>>> - 2 files changed, 15 insertions(+), 4 deletions(-)
>>> -
>>> -Index: busybox-1.23.2/networking/udhcp/common.c
>>> -===================================================================
>>> ---- busybox-1.23.2.orig/networking/udhcp/common.c
>>> -+++ busybox-1.23.2/networking/udhcp/common.c
>>> -@@ -142,7 +142,7 @@ const char dhcp_option_strings[] ALIGN1
>>> -  * udhcp_str2optset: to determine how many bytes to allocate.
>>> -  * xmalloc_optname_optval: to estimate string length
>>> -  * from binary option length: (option[LEN] / dhcp_option_lengths[opt_type])
>>> -- * is the number of elements, multiply in by one element's string width
>>> -+ * is the number of elements, multiply it by one element's string width
>>> -  * (len_of_option_as_string[opt_type]) and you know how wide string you need.
>>> -  */
>>> - const uint8_t dhcp_option_lengths[] ALIGN1 = {
>>> -@@ -162,7 +162,18 @@ const uint8_t dhcp_option_lengths[] ALIG
>>> - 	[OPTION_S32] =     4,
>>> - 	/* Just like OPTION_STRING, we use minimum length here */
>>> - 	[OPTION_STATIC_ROUTES] = 5,
>>> --	[OPTION_6RD] =    22,  /* ignored by udhcp_str2optset */
>>> -+	[OPTION_6RD] =    12,  /* ignored by udhcp_str2optset */
>>> -+	/* The above value was chosen as follows:
>>> -+	 * len_of_option_as_string[] for this option is >60: it's a string of the form
>>> -+	 * "32 128 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 255.255.255.255 ".
>>> -+	 * Each additional ipv4 address takes 4 bytes in binary option and appends
>>> -+	 * another "255.255.255.255 " 16-byte string. We can set [OPTION_6RD] = 4
>>> -+	 * but this severely overestimates string length: instead of 16 bytes,
>>> -+	 * it adds >60 for every 4 bytes in binary option.
>>> -+	 * We cheat and declare here that option is in units of 12 bytes.
>>> -+	 * This adds more than 60 bytes for every three ipv4 addresses - more than enough.
>>> -+	 * (Even 16 instead of 12 should work, but let's be paranoid).
>>> -+	 */
>>> - };
>>> -
>>> -
>>> -Index: busybox-1.23.2/networking/udhcp/dhcpc.c
>>> -===================================================================
>>> ---- busybox-1.23.2.orig/networking/udhcp/dhcpc.c
>>> -+++ busybox-1.23.2/networking/udhcp/dhcpc.c
>>> -@@ -103,7 +103,7 @@ static const uint8_t len_of_option_as_st
>>> - 	[OPTION_IP              ] = sizeof("255.255.255.255 "),
>>> - 	[OPTION_IP_PAIR         ] = sizeof("255.255.255.255 ") * 2,
>>> - 	[OPTION_STATIC_ROUTES   ] = sizeof("255.255.255.255/32 255.255.255.255 "),
>>> --	[OPTION_6RD             ] = sizeof("32 128 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 255.255.255.255 "),
>>> -+	[OPTION_6RD             ] = sizeof("132 128 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 255.255.255.255 "),
>>> - 	[OPTION_STRING          ] = 1,
>>> - 	[OPTION_STRING_HOST     ] = 1,
>>> - #if ENABLE_FEATURE_UDHCP_RFC3397
>>> -@@ -214,7 +214,7 @@ static NOINLINE char *xmalloc_optname_op
>>> - 	type = optflag->flags & OPTION_TYPE_MASK;
>>> - 	optlen = dhcp_option_lengths[type];
>>> - 	upper_length = len_of_option_as_string[type]
>>> --		* ((unsigned)(len + optlen - 1) / (unsigned)optlen);
>>> -+		* ((unsigned)(len + optlen) / (unsigned)optlen);
>>> -
>>> - 	dest = ret = xmalloc(upper_length + strlen(opt_name) + 2);
>>> - 	dest += sprintf(ret, "%s=", opt_name);
>>> diff --git a/meta/recipes-core/busybox/busybox/CVE-2016-6301.patch b/meta/recipes-core/busybox/busybox/CVE-2016-6301.patch
>>> deleted file mode 100644
>>> index 851bc20..0000000
>>> --- a/meta/recipes-core/busybox/busybox/CVE-2016-6301.patch
>>> +++ /dev/null
>>> @@ -1,37 +0,0 @@
>>> -busybox1.24.1: Fix CVE-2016-6301
>>> -
>>> -[No upstream tracking] -- https://bugzilla.redhat.com/show_bug.cgi?id=1363710
>>> -
>>> -ntpd: NTP server denial of service flaw
>>> -
>>> -The busybox NTP implementation doesn't check the NTP mode of packets
>>> -received on the server port and responds to any packet with the right
>>> -size. This includes responses from another NTP server. An attacker can
>>> -send a packet with a spoofed source address in order to create an
>>> -infinite loop of responses between two busybox NTP servers. Adding
>>> -more packets to the loop increases the traffic between the servers
>>> -until one of them has a fully loaded CPU and/or network.
>>> -
>>> -Upstream-Status: Backport [https://git.busybox.net/busybox/commit/?id=150dc7a2b483b8338a3e185c478b4b23ee884e71]
>>> -CVE: CVE-2016-6301
>>> -Signed-off-by: Andrej Valek <andrej.valek at siemens.com>
>>> -Signed-off-by: Pascal Bach <pascal.bach at siemens.com>
>>> -
>>> -diff --git a/networking/ntpd.c b/networking/ntpd.c
>>> -index 9732c9b..0f6a55f 100644
>>> ---- a/networking/ntpd.c
>>> -+++ b/networking/ntpd.c
>>> -@@ -1985,6 +1985,13 @@ recv_and_process_client_pkt(void /*int fd*/)
>>> - 		goto bail;
>>> - 	}
>>> -
>>> -+	/* Respond only to client and symmetric active packets */
>>> -+	if ((msg.m_status & MODE_MASK) != MODE_CLIENT
>>> -+	 && (msg.m_status & MODE_MASK) != MODE_SYM_ACT
>>> -+	) {
>>> -+		goto bail;
>>> -+	}
>>> -+
>>> - 	query_status = msg.m_status;
>>> - 	query_xmttime = msg.m_xmttime;
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/busybox-1.24.1-truncate-open-mode.patch b/meta/recipes-core/busybox/busybox/busybox-1.24.1-truncate-open-mode.patch
>>> deleted file mode 100644
>>> index cdc9108..0000000
>>> --- a/meta/recipes-core/busybox/busybox/busybox-1.24.1-truncate-open-mode.patch
>>> +++ /dev/null
>>> @@ -1,81 +0,0 @@
>>> -Upstream-Status: Backport
>>> -
>>> -  http://busybox.net/downloads/fixes-1.24.1/
>>> -  https://git.busybox.net/busybox/commit/?id=e111a1640494fe87fc913f94fae3bb805de0fc99
>>> -  https://git.busybox.net/busybox/commit/?h=1_24_stable&id=be729c1d3b5c923f10871dd68ea94156d0f8c803
>>> -
>>> -Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
>>> -
>>> -From be729c1d3b5c923f10871dd68ea94156d0f8c803 Mon Sep 17 00:00:00 2001
>>> -From: Ari Sundholm <ari at tuxera.com>
>>> -Date: Mon, 4 Jan 2016 15:40:37 +0200
>>> -Subject: [PATCH] truncate: always set mode when opening file to avoid fortify
>>> - errors
>>> -
>>> -Busybox crashes due to no mode being given when opening:
>>> -$ ./busybox truncate -s 1M foo
>>> -*** invalid open64 call: O_CREAT without mode ***: ./busybox terminated
>>> -======= Backtrace: =========
>>> -/lib/x86_64-linux-gnu/libc.so.6(+0x7338f)[0x7f66d921338f]
>>> -/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f66d92aac9c]
>>> -/lib/x86_64-linux-gnu/libc.so.6(+0xeb6aa)[0x7f66d928b6aa]
>>> -./busybox[0x4899f9]
>>> -======= Memory map: ========
>>> -00400000-004d0000 r-xp 00000000 00:1a 137559                             /home/ari/busybox/busybox
>>> -006cf000-006d0000 r--p 000cf000 00:1a 137559                             /home/ari/busybox/busybox
>>> -006d0000-006d1000 rw-p 000d0000 00:1a 137559                             /home/ari/busybox/busybox
>>> -006d1000-006d4000 rw-p 00000000 00:00 0
>>> -014e7000-01508000 rw-p 00000000 00:00 0                                  [heap]
>>> -7f66d8f8a000-7f66d8fa0000 r-xp 00000000 08:07 1579008                    /lib/x86_64-linux-gnu/libgcc_s.so.1
>>> -7f66d8fa0000-7f66d919f000 ---p 00016000 08:07 1579008                    /lib/x86_64-linux-gnu/libgcc_s.so.1
>>> -7f66d919f000-7f66d91a0000 rw-p 00015000 08:07 1579008                    /lib/x86_64-linux-gnu/libgcc_s.so.1
>>> -7f66d91a0000-7f66d935b000 r-xp 00000000 08:07 1578994                    /lib/x86_64-linux-gnu/libc-2.19.so
>>> -7f66d935b000-7f66d955a000 ---p 001bb000 08:07 1578994                    /lib/x86_64-linux-gnu/libc-2.19.so
>>> -7f66d955a000-7f66d955e000 r--p 001ba000 08:07 1578994                    /lib/x86_64-linux-gnu/libc-2.19.so
>>> -7f66d955e000-7f66d9560000 rw-p 001be000 08:07 1578994                    /lib/x86_64-linux-gnu/libc-2.19.so
>>> -7f66d9560000-7f66d9565000 rw-p 00000000 00:00 0
>>> -7f66d9565000-7f66d966a000 r-xp 00000000 08:07 1579020                    /lib/x86_64-linux-gnu/libm-2.19.so
>>> -7f66d966a000-7f66d9869000 ---p 00105000 08:07 1579020                    /lib/x86_64-linux-gnu/libm-2.19.so
>>> -7f66d9869000-7f66d986a000 r--p 00104000 08:07 1579020                    /lib/x86_64-linux-gnu/libm-2.19.so
>>> -7f66d986a000-7f66d986b000 rw-p 00105000 08:07 1579020                    /lib/x86_64-linux-gnu/libm-2.19.so
>>> -7f66d986b000-7f66d988e000 r-xp 00000000 08:07 1578981                    /lib/x86_64-linux-gnu/ld-2.19.so
>>> -7f66d9a64000-7f66d9a67000 rw-p 00000000 00:00 0
>>> -7f66d9a8a000-7f66d9a8d000 rw-p 00000000 00:00 0
>>> -7f66d9a8d000-7f66d9a8e000 r--p 00022000 08:07 1578981                    /lib/x86_64-linux-gnu/ld-2.19.so
>>> -7f66d9a8e000-7f66d9a8f000 rw-p 00023000 08:07 1578981                    /lib/x86_64-linux-gnu/ld-2.19.so
>>> -7f66d9a8f000-7f66d9a90000 rw-p 00000000 00:00 0
>>> -7ffc47761000-7ffc47782000 rw-p 00000000 00:00 0                          [stack]
>>> -7ffc477ab000-7ffc477ad000 r-xp 00000000 00:00 0                          [vdso]
>>> -ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
>>> -Aborted (core dumped)
>>> -$
>>> -
>>> -Fix this by simply always setting the mode, as it doesn't hurt even
>>> -when O_CREAT is not specified.
>>> -
>>> -This bug is a regression introduced in fc3e40e, as xopen(), which
>>> -was originally used, would automatically set the mode.
>>> -
>>> -Signed-off-by: Ari Sundholm <ari at tuxera.com>
>>> -Signed-off-by: Mike Frysinger <vapier at gentoo.org>
>>> -(cherry picked from commit e111a1640494fe87fc913f94fae3bb805de0fc99)
>>> ----
>>> - coreutils/truncate.c | 2 +-
>>> - 1 file changed, 1 insertion(+), 1 deletion(-)
>>> -
>>> -diff --git a/coreutils/truncate.c b/coreutils/truncate.c
>>> -index e5fa656..4c997bf 100644
>>> ---- a/coreutils/truncate.c
>>> -+++ b/coreutils/truncate.c
>>> -@@ -64,7 +64,7 @@ int truncate_main(int argc UNUSED_PARAM, char **argv)
>>> -
>>> - 	argv += optind;
>>> - 	while (*argv) {
>>> --		int fd = open(*argv, flags);
>>> -+		int fd = open(*argv, flags, 0666);
>>> - 		if (fd < 0) {
>>> - 			if (errno != ENOENT || !(opts & OPT_NOCREATE)) {
>>> - 				bb_perror_msg("%s: open", *argv);
>>> ---
>>> -2.6.2
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/busybox-1.24.1-unzip-regression.patch b/meta/recipes-core/busybox/busybox/busybox-1.24.1-unzip-regression.patch
>>> deleted file mode 100644
>>> index e3c5020..0000000
>>> --- a/meta/recipes-core/busybox/busybox/busybox-1.24.1-unzip-regression.patch
>>> +++ /dev/null
>>> @@ -1,143 +0,0 @@
>>> -Upstream-Status: Backport
>>> -
>>> -  http://busybox.net/downloads/fixes-1.24.1/
>>> -  http://git.busybox.net/busybox/commit/?id=092fabcf1df5d46cd22be4ffcd3b871f6180eb9c
>>> -  http://git.busybox.net/busybox/commit/?h=1_24_stable&id=092fabcf1df5d46cd22be4ffcd3b871f6180eb9c
>>> -
>>> -Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
>>> -
>>> -From 092fabcf1df5d46cd22be4ffcd3b871f6180eb9c Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Fri, 30 Oct 2015 23:41:53 +0100
>>> -Subject: [PATCH] [g]unzip: fix recent breakage.
>>> -
>>> -Also, do emit error message we so painstakingly pass from gzip internals
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -(cherry picked from commit 6bd3fff51aa74e2ee2d87887b12182a3b09792ef)
>>> -Signed-off-by: Mike Frysinger <vapier at gentoo.org>
>>> ----
>>> - archival/libarchive/decompress_gunzip.c | 33 +++++++++++++++++++++------------
>>> - testsuite/unzip.tests                   |  1 +
>>> - 2 files changed, 22 insertions(+), 12 deletions(-)
>>> -
>>> -diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c
>>> -index c76fd31..357c9bf 100644
>>> ---- a/archival/libarchive/decompress_gunzip.c
>>> -+++ b/archival/libarchive/decompress_gunzip.c
>>> -@@ -309,8 +309,7 @@ static int huft_build(const unsigned *b, const unsigned n,
>>> - 	huft_t *q;              /* points to current table */
>>> - 	huft_t r;               /* table entry for structure assignment */
>>> - 	huft_t *u[BMAX];        /* table stack */
>>> --	unsigned v[N_MAX];      /* values in order of bit length */
>>> --	unsigned v_end;
>>> -+	unsigned v[N_MAX + 1];  /* values in order of bit length. last v[] is never used */
>>> - 	int ws[BMAX + 1];       /* bits decoded stack */
>>> - 	int w;                  /* bits decoded */
>>> - 	unsigned x[BMAX + 1];   /* bit offsets, then code stack */
>>> -@@ -365,15 +364,17 @@ static int huft_build(const unsigned *b, const unsigned n,
>>> - 		*xp++ = j;
>>> - 	}
>>> -
>>> --	/* Make a table of values in order of bit lengths */
>>> -+	/* Make a table of values in order of bit lengths.
>>> -+	 * To detect bad input, unused v[i]'s are set to invalid value UINT_MAX.
>>> -+	 * In particular, last v[i] is never filled and must not be accessed.
>>> -+	 */
>>> -+	memset(v, 0xff, sizeof(v));
>>> - 	p = b;
>>> - 	i = 0;
>>> --	v_end = 0;
>>> - 	do {
>>> - 		j = *p++;
>>> - 		if (j != 0) {
>>> - 			v[x[j]++] = i;
>>> --			v_end = x[j];
>>> - 		}
>>> - 	} while (++i < n);
>>> -
>>> -@@ -435,7 +436,9 @@ static int huft_build(const unsigned *b, const unsigned n,
>>> -
>>> - 			/* set up table entry in r */
>>> - 			r.b = (unsigned char) (k - w);
>>> --			if (p >= v + v_end) { // Was "if (p >= v + n)" but v[] can be shorter!
>>> -+			if (/*p >= v + n || -- redundant, caught by the second check: */
>>> -+			    *p == UINT_MAX /* do we access uninited v[i]? (see memset(v))*/
>>> -+			) {
>>> - 				r.e = 99; /* out of values--invalid code */
>>> - 			} else if (*p < s) {
>>> - 				r.e = (unsigned char) (*p < 256 ? 16 : 15);	/* 256 is EOB code */
>>> -@@ -520,8 +523,9 @@ static NOINLINE int inflate_codes(STATE_PARAM_ONLY)
>>> - 		e = t->e;
>>> - 		if (e > 16)
>>> - 			do {
>>> --				if (e == 99)
>>> --					abort_unzip(PASS_STATE_ONLY);;
>>> -+				if (e == 99) {
>>> -+					abort_unzip(PASS_STATE_ONLY);
>>> -+				}
>>> - 				bb >>= t->b;
>>> - 				k -= t->b;
>>> - 				e -= 16;
>>> -@@ -557,8 +561,9 @@ static NOINLINE int inflate_codes(STATE_PARAM_ONLY)
>>> - 			e = t->e;
>>> - 			if (e > 16)
>>> - 				do {
>>> --					if (e == 99)
>>> -+					if (e == 99) {
>>> - 						abort_unzip(PASS_STATE_ONLY);
>>> -+					}
>>> - 					bb >>= t->b;
>>> - 					k -= t->b;
>>> - 					e -= 16;
>>> -@@ -824,8 +829,9 @@ static int inflate_block(STATE_PARAM smallint *e)
>>> -
>>> - 		b_dynamic >>= 4;
>>> - 		k_dynamic -= 4;
>>> --		if (nl > 286 || nd > 30)
>>> -+		if (nl > 286 || nd > 30) {
>>> - 			abort_unzip(PASS_STATE_ONLY);	/* bad lengths */
>>> -+		}
>>> -
>>> - 		/* read in bit-length-code lengths */
>>> - 		for (j = 0; j < nb; j++) {
>>> -@@ -906,12 +912,14 @@ static int inflate_block(STATE_PARAM smallint *e)
>>> - 		bl = lbits;
>>> -
>>> - 		i = huft_build(ll, nl, 257, cplens, cplext, &inflate_codes_tl, &bl);
>>> --		if (i != 0)
>>> -+		if (i != 0) {
>>> - 			abort_unzip(PASS_STATE_ONLY);
>>> -+		}
>>> - 		bd = dbits;
>>> - 		i = huft_build(ll + nl, nd, 0, cpdist, cpdext, &inflate_codes_td, &bd);
>>> --		if (i != 0)
>>> -+		if (i != 0) {
>>> - 			abort_unzip(PASS_STATE_ONLY);
>>> -+		}
>>> -
>>> - 		/* set up data for inflate_codes() */
>>> - 		inflate_codes_setup(PASS_STATE bl, bd);
>>> -@@ -999,6 +1007,7 @@ inflate_unzip_internal(STATE_PARAM transformer_state_t *xstate)
>>> - 	error_msg = "corrupted data";
>>> - 	if (setjmp(error_jmp)) {
>>> - 		/* Error from deep inside zip machinery */
>>> -+		bb_error_msg(error_msg);
>>> - 		n = -1;
>>> - 		goto ret;
>>> - 	}
>>> -diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests
>>> -index ca0a458..d8738a3 100755
>>> ---- a/testsuite/unzip.tests
>>> -+++ b/testsuite/unzip.tests
>>> -@@ -34,6 +34,7 @@ rm foo.zip
>>> - testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \
>>> - "Archive:  bad.zip
>>> -   inflating: ]3j½r«IK-%Ix
>>> -+unzip: corrupted data
>>> - unzip: inflate error
>>> - 1
>>> - " \
>>> ---
>>> -2.6.2
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/busybox-1.24.1-unzip.patch b/meta/recipes-core/busybox/busybox/busybox-1.24.1-unzip.patch
>>> deleted file mode 100644
>>> index 7186726..0000000
>>> --- a/meta/recipes-core/busybox/busybox/busybox-1.24.1-unzip.patch
>>> +++ /dev/null
>>> @@ -1,118 +0,0 @@
>>> -Upstream-Status: Backport
>>> -
>>> -  http://busybox.net/downloads/fixes-1.24.1/
>>> -  http://git.busybox.net/busybox/commit/?id=1de25a6e87e0e627aa34298105a3d17c60a1f44e
>>> -  http://git.busybox.net/busybox/commit/?h=1_24_stable&id=6767af17f11144c7cd3cfe9ef799d7f89a78fe65
>>> -
>>> -Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
>>> -
>>> -From 1de25a6e87e0e627aa34298105a3d17c60a1f44e Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Mon, 26 Oct 2015 19:33:05 +0100
>>> -Subject: [PATCH] unzip: test for bad archive SEGVing
>>> -
>>> -function                                             old     new   delta
>>> -huft_build                                          1296    1300      +4
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> ----
>>> - archival/libarchive/decompress_gunzip.c | 11 +++++++----
>>> - testsuite/unzip.tests                   | 23 ++++++++++++++++++++++-
>>> - 2 files changed, 29 insertions(+), 5 deletions(-)
>>> -
>>> -diff --git a/archival/libarchive/decompress_gunzip.c b/archival/libarchive/decompress_gunzip.c
>>> -index 7b6f459..30bf451 100644
>>> ---- a/archival/libarchive/decompress_gunzip.c
>>> -+++ b/archival/libarchive/decompress_gunzip.c
>>> -@@ -305,11 +305,12 @@ static int huft_build(const unsigned *b, const unsigned n,
>>> - 	unsigned i;             /* counter, current code */
>>> - 	unsigned j;             /* counter */
>>> - 	int k;                  /* number of bits in current code */
>>> --	unsigned *p;            /* pointer into c[], b[], or v[] */
>>> -+	const unsigned *p;      /* pointer into c[], b[], or v[] */
>>> - 	huft_t *q;              /* points to current table */
>>> - 	huft_t r;               /* table entry for structure assignment */
>>> - 	huft_t *u[BMAX];        /* table stack */
>>> - 	unsigned v[N_MAX];      /* values in order of bit length */
>>> -+	unsigned v_end;
>>> - 	int ws[BMAX + 1];       /* bits decoded stack */
>>> - 	int w;                  /* bits decoded */
>>> - 	unsigned x[BMAX + 1];   /* bit offsets, then code stack */
>>> -@@ -324,7 +325,7 @@ static int huft_build(const unsigned *b, const unsigned n,
>>> -
>>> - 	/* Generate counts for each bit length */
>>> - 	memset(c, 0, sizeof(c));
>>> --	p = (unsigned *) b; /* cast allows us to reuse p for pointing to b */
>>> -+	p = b;
>>> - 	i = n;
>>> - 	do {
>>> - 		c[*p]++; /* assume all entries <= BMAX */
>>> -@@ -365,12 +366,14 @@ static int huft_build(const unsigned *b, const unsigned n,
>>> - 	}
>>> -
>>> - 	/* Make a table of values in order of bit lengths */
>>> --	p = (unsigned *) b;
>>> -+	p = b;
>>> - 	i = 0;
>>> -+	v_end = 0;
>>> - 	do {
>>> - 		j = *p++;
>>> - 		if (j != 0) {
>>> - 			v[x[j]++] = i;
>>> -+			v_end = x[j];
>>> - 		}
>>> - 	} while (++i < n);
>>> -
>>> -@@ -432,7 +435,7 @@ static int huft_build(const unsigned *b, const unsigned n,
>>> -
>>> - 			/* set up table entry in r */
>>> - 			r.b = (unsigned char) (k - w);
>>> --			if (p >= v + n) {
>>> -+			if (p >= v + v_end) { // Was "if (p >= v + n)" but v[] can be shorter!
>>> - 				r.e = 99; /* out of values--invalid code */
>>> - 			} else if (*p < s) {
>>> - 				r.e = (unsigned char) (*p < 256 ? 16 : 15);	/* 256 is EOB code */
>>> -diff --git a/testsuite/unzip.tests b/testsuite/unzip.tests
>>> -index 8677a03..ca0a458 100755
>>> ---- a/testsuite/unzip.tests
>>> -+++ b/testsuite/unzip.tests
>>> -@@ -7,7 +7,7 @@
>>> -
>>> - . ./testing.sh
>>> -
>>> --# testing "test name" "options" "expected result" "file input" "stdin"
>>> -+# testing "test name" "commands" "expected result" "file input" "stdin"
>>> - #   file input will be file called "input"
>>> - #   test can create a file "actual" instead of writing to stdout
>>> -
>>> -@@ -30,6 +30,27 @@ testing "unzip (subdir only)" "unzip -q foo.zip foo/ && test -d foo && test ! -f
>>> - rmdir foo
>>> - rm foo.zip
>>> -
>>> -+# File containing some damaged encrypted stream
>>> -+testing "unzip (bad archive)" "uudecode; unzip bad.zip 2>&1; echo \$?" \
>>> -+"Archive:  bad.zip
>>> -+  inflating: ]3j½r«IK-%Ix
>>> -+unzip: inflate error
>>> -+1
>>> -+" \
>>> -+"" "\
>>> -+begin-base64 644 bad.zip
>>> -+UEsDBBQAAgkIAAAAIQA5AAAANwAAADwAAAAQAAcAXTNqwr1ywqtJGxJLLSVJ
>>> -+eCkBD0AdKBk8JzQsIj01JC0/ORJQSwMEFAECCAAAAAAhADoAAAAPAAAANgAA
>>> -+AAwAAQASw73Ct1DCokohPXQiNjoUNTUiHRwgLT4WHlBLAQIQABQAAggIAAAA
>>> -+oQA5AAAANwAAADwAAAAQQAcADAAAACwAMgCAAAAAAABdM2rCvXLCq0kbEkst
>>> -+JUl4KQEPQB0oGSY4Cz4QNgEnJSYIPVBLAQIAABQAAggAAAAAIQAqAAAADwAA
>>> -+BDYAAAAMAAEADQAAADIADQAAAEEAAAASw73Ct1DKokohPXQiNzA+FAI1HCcW
>>> -+NzITNFBLBQUKAC4JAA04Cw0EOhZQSwUGAQAABAIAAgCZAAAAeQAAAAIALhM=
>>> -+====
>>> -+"
>>> -+
>>> -+rm *
>>> -+
>>> - # Clean up scratch directory.
>>> -
>>> - cd ..
>>> ---
>>> -2.6.2
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/busybox-cross-menuconfig.patch b/meta/recipes-core/busybox/busybox/busybox-cross-menuconfig.patch
>>> index bda8685..6faca22 100644
>>> --- a/meta/recipes-core/busybox/busybox/busybox-cross-menuconfig.patch
>>> +++ b/meta/recipes-core/busybox/busybox/busybox-cross-menuconfig.patch
>>> @@ -33,7 +33,7 @@ cc: linux-kbuild at vger.kernel.org
>>>     scripts/kconfig/lxdialog/Makefile          |    2 +-
>>>     scripts/kconfig/lxdialog/check-lxdialog.sh |    8 ++++++++
>>>     2 files changed, 9 insertions(+), 1 deletion(-)
>>> -
>>> +
>>>    --- a/scripts/kconfig/lxdialog/check-lxdialog.sh
>>>    +++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
>>>    @@ -4,6 +4,10 @@
>>> @@ -44,10 +44,10 @@ cc: linux-kbuild at vger.kernel.org
>>>    +		echo "$CROSS_CURSES_LIB"
>>>    +		exit
>>>    +	fi
>>> - 	for ext in so a dylib ; do
>>> - 		for lib in ncursesw ncurses curses ; do
>>> - 			$cc -print-file-name=lib${lib}.${ext} | grep -q /
>>> -@@ -19,6 +23,10 @@ ldflags()
>>> + 	pkg-config --libs ncursesw 2>/dev/null && exit
>>> + 	pkg-config --libs ncurses 2>/dev/null && exit
>>> + 	for ext in so a dll.a dylib ; do
>>> +@@ -21,6 +25,10 @@
>>>     # Where is ncurses.h?
>>>     ccflags()
>>>     {
>>> @@ -55,12 +55,12 @@ cc: linux-kbuild at vger.kernel.org
>>>    +		echo "$CROSS_CURSES_INC"
>>>    +		exit
>>>    +	fi
>>> - 	if [ -f /usr/include/ncursesw/ncurses.h ]; then
>>> - 		echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncurses.h>"'
>>> - 	elif [ -f /usr/include/ncursesw/curses.h ]; then
>>> + 	if pkg-config --cflags ncursesw 2>/dev/null; then
>>> + 		echo '-DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1'
>>> + 	elif pkg-config --cflags ncurses 2>/dev/null; then
>>>    --- a/scripts/kconfig/lxdialog/Makefile
>>>    +++ b/scripts/kconfig/lxdialog/Makefile
>>> -@@ -5,7 +5,7 @@ check-lxdialog  := $(srctree)/$(src)/che
>>> +@@ -5,7 +5,7 @@
>>>     
>>>     # Use reursively expanded variables so we do not call gcc unless
>>>     # we really need to do so. (Do not call gcc as part of make mrproper)
>>> diff --git a/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch b/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch
>>> deleted file mode 100644
>>> index 38302e0..0000000
>>> --- a/meta/recipes-core/busybox/busybox/busybox-kbuild-race-fix-commit-d8e61bb.patch
>>> +++ /dev/null
>>> @@ -1,53 +0,0 @@
>>> -Upstream-Status: Backport
>>> -
>>> -Patch addressing a parallel make race in Busybox
>>> -
>>> -  http://git.busybox.net/busybox/commit/?id=d8e61bbf13d0cf38d477255cfd5dc71c5d51d575
>>> -
>>> -Signed-off-by: Juro Bystricky <juro.bystricky at intel.com>
>>> -
>>> -From d8e61bbf13d0cf38d477255cfd5dc71c5d51d575 Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Sun, 21 Aug 2016 22:00:20 +0200
>>> -Subject: build system: different fix for
>>> - include/applet_tables.h/include/NUM_APPLETS.h
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -
>>> -diff --git a/applets/Kbuild.src b/applets/Kbuild.src
>>> -index 5cc1827..3aedbbf 100644
>>> ---- a/applets/Kbuild.src
>>> -+++ b/applets/Kbuild.src
>>> -@@ -29,7 +29,7 @@ applets/applets.o: include/usage_compressed.h include/applet_tables.h
>>> -
>>> - applets/applet_tables: .config include/applets.h
>>> - applets/usage:         .config include/applets.h
>>> --applets/usage_pod:     .config include/applets.h include/applet_tables.h include/NUM_APPLETS.h
>>> -+applets/usage_pod:     .config include/applets.h include/applet_tables.h
>>> -
>>> - quiet_cmd_gen_usage_compressed = GEN     include/usage_compressed.h
>>> -       cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets
>>> -@@ -37,8 +37,21 @@ quiet_cmd_gen_usage_compressed = GEN     include/usage_compressed.h
>>> - include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compressed
>>> - 	$(call cmd,gen_usage_compressed)
>>> -
>>> --quiet_cmd_gen_applet_tables = GEN     include/applet_tables.h
>>> -+quiet_cmd_gen_applet_tables = GEN     include/applet_tables.h include/NUM_APPLETS.h
>>> -       cmd_gen_applet_tables = applets/applet_tables include/applet_tables.h include/NUM_APPLETS.h
>>> -
>>> --include/applet_tables.h include/NUM_APPLETS.h: applets/applet_tables
>>> -+include/NUM_APPLETS.h: applets/applet_tables
>>> -+	$(call cmd,gen_applet_tables)
>>> -+
>>> -+# In fact, include/applet_tables.h depends only on applets/applet_tables,
>>> -+# and is generated by it. But specifying only it can run
>>> -+# applets/applet_tables twice, possibly in parallel.
>>> -+# We say that it also needs NUM_APPLETS.h
>>> -+#
>>> -+# Unfortunately, we need to list the same command,
>>> -+# and it can be executed twice (sequentially).
>>> -+# The alternative is to not list any command,
>>> -+# and then if include/applet_tables.h is deleted, it won't be rebuilt.
>>> -+#
>>> -+include/applet_tables.h: include/NUM_APPLETS.h applets/applet_tables
>>> - 	$(call cmd,gen_applet_tables)
>>> diff --git a/meta/recipes-core/busybox/busybox/busybox-tar-add-IF_FEATURE_-checks.patch b/meta/recipes-core/busybox/busybox/busybox-tar-add-IF_FEATURE_-checks.patch
>>> deleted file mode 100644
>>> index 0c3c9c0..0000000
>>> --- a/meta/recipes-core/busybox/busybox/busybox-tar-add-IF_FEATURE_-checks.patch
>>> +++ /dev/null
>>> @@ -1,70 +0,0 @@
>>> -From f94412f6bb49136694c5478d0aecb19118d1b08d Mon Sep 17 00:00:00 2001
>>> -From: Ming Liu <peter.x.liu at external.atlascopco.com>
>>> -Date: Wed, 31 May 2017 11:48:09 +0200
>>> -Subject: [PATCH] tar: add IF_FEATURE_* checks
>>> -
>>> -A following linking error was observed:
>>> -| ==========
>>> -| archival/lib.a(tar.o): In function `tar_main':
>>> -| archival/tar.c:1168: undefined reference to `unpack_Z_stream'
>>> -| archival/tar.c:1168: undefined reference to `unpack_Z_stream'
>>> -| ld: busybox_unstripped: hidden symbol `unpack_Z_stream' isn't defined
>>> -| ld: final link failed: Bad value
>>> -
>>> -this happened with clang compiler, with the following configs:
>>> -| CONFIG_TAR=y
>>> -| # CONFIG_FEATURE_SEAMLESS_Z is not set
>>> -
>>> -which can be fixed by adding IF_FEATURE_* checks in.
>>> -
>>> -Upstream-Status: Pending [ Sent to busybox upstream on 2017-06-02 ]
>>> -
>>> -Signed-off-by: Ming Liu <peter.x.liu at external.atlascopco.com>
>>> ----
>>> - archival/tar.c | 25 +++++++++++++++----------
>>> - 1 file changed, 15 insertions(+), 10 deletions(-)
>>> -
>>> -diff --git a/archival/tar.c b/archival/tar.c
>>> -index b70e00a..7598b71 100644
>>> ---- a/archival/tar.c
>>> -+++ b/archival/tar.c
>>> -@@ -1216,21 +1216,26 @@ int tar_main(int argc UNUSED_PARAM, char **argv)
>>> - 		USE_FOR_MMU(IF_DESKTOP(long long) int FAST_FUNC (*xformer)(transformer_state_t *xstate);)
>>> - 		USE_FOR_NOMMU(const char *xformer_prog;)
>>> -
>>> --		if (opt & OPT_COMPRESS)
>>> --			USE_FOR_MMU(xformer = unpack_Z_stream;)
>>> -+		if (opt & OPT_COMPRESS) {
>>> -+			USE_FOR_MMU(IF_FEATURE_SEAMLESS_Z(xformer = unpack_Z_stream;))
>>> - 			USE_FOR_NOMMU(xformer_prog = "uncompress";)
>>> --		if (opt & OPT_GZIP)
>>> --			USE_FOR_MMU(xformer = unpack_gz_stream;)
>>> -+		}
>>> -+		if (opt & OPT_GZIP) {
>>> -+			USE_FOR_MMU(IF_FEATURE_SEAMLESS_GZ(xformer = unpack_gz_stream;))
>>> - 			USE_FOR_NOMMU(xformer_prog = "gunzip";)
>>> --		if (opt & OPT_BZIP2)
>>> --			USE_FOR_MMU(xformer = unpack_bz2_stream;)
>>> -+		}
>>> -+		if (opt & OPT_BZIP2) {
>>> -+			USE_FOR_MMU(IF_FEATURE_SEAMLESS_BZ2(xformer = unpack_bz2_stream;))
>>> - 			USE_FOR_NOMMU(xformer_prog = "bunzip2";)
>>> --		if (opt & OPT_LZMA)
>>> --			USE_FOR_MMU(xformer = unpack_lzma_stream;)
>>> -+		}
>>> -+		if (opt & OPT_LZMA) {
>>> -+			USE_FOR_MMU(IF_FEATURE_SEAMLESS_LZMA(xformer = unpack_lzma_stream;))
>>> - 			USE_FOR_NOMMU(xformer_prog = "unlzma";)
>>> --		if (opt & OPT_XZ)
>>> --			USE_FOR_MMU(xformer = unpack_xz_stream;)
>>> -+		}
>>> -+		if (opt & OPT_XZ) {
>>> -+			USE_FOR_MMU(IF_FEATURE_SEAMLESS_XZ(xformer = unpack_xz_stream;))
>>> - 			USE_FOR_NOMMU(xformer_prog = "unxz";)
>>> -+		}
>>> -
>>> - 		fork_transformer_with_sig(tar_handle->src_fd, xformer, xformer_prog);
>>> - 		/* Can't lseek over pipes */
>>> ---
>>> -2.7.4
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch b/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch
>>> index 4c9ce3b..582a258 100644
>>> --- a/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch
>>> +++ b/meta/recipes-core/busybox/busybox/busybox-udhcpc-no_deconfig.patch
>>> @@ -28,24 +28,23 @@ Fixed options -b, -a and -P.
>>>    
>>>    Signed-off-by: Andreas Oberritter <obi at opendreambox.org>
>>>    ---
>>> - networking/udhcp/dhcpc.c |   29 +++++++++++++++++++++--------
>>> - 1 files changed, 21 insertions(+), 8 deletions(-)
>>> + networking/udhcp/dhcpc.c                       | 29 ++++++++++++++++------
>>> + 1 file changed, 21 insertions(+), 8 deletions(-)
>>>    
>>> -Index: busybox-1.20.2/networking/udhcp/dhcpc.c
>>> +Index: busybox-1.27.2/networking/udhcp/dhcpc.c
>>>    ===================================================================
>>> ---- busybox-1.20.2.orig/networking/udhcp/dhcpc.c
>>> -+++ busybox-1.20.2/networking/udhcp/dhcpc.c
>>> -@@ -29,6 +29,9 @@
>>> - #include <netpacket/packet.h>
>>> - #include <linux/filter.h>
>>> +--- busybox-1.27.2.orig/networking/udhcp/dhcpc.c
>>> ++++ busybox-1.27.2/networking/udhcp/dhcpc.c
>>> +@@ -49,6 +49,8 @@ struct tpacket_auxdata {
>>> + };
>>> + #endif
>>>     
>>>    +/* option whether to down the interface when reconfiguring */
>>>    +static int allow_deconfig = 1;
>>> -+
>>> - /* "struct client_config_t client_config" is in bb_common_bufsiz1 */
>>>     
>>> + /* "struct client_config_t client_config" is in bb_common_bufsiz1 */
>>>     
>>> -@@ -81,8 +84,9 @@ enum {
>>> +@@ -104,8 +106,9 @@ enum {
>>>     	OPT_x = 1 << 18,
>>>     	OPT_f = 1 << 19,
>>>     	OPT_B = 1 << 20,
>>> @@ -56,7 +55,7 @@ Index: busybox-1.20.2/networking/udhcp/dhcpc.c
>>>     	USE_FOR_MMU(             OPTBIT_b,)
>>>     	IF_FEATURE_UDHCPC_ARPING(OPTBIT_a,)
>>>     	IF_FEATURE_UDHCP_PORT(   OPTBIT_P,)
>>> -@@ -1040,7 +1044,8 @@ static void perform_renew(void)
>>> +@@ -1110,7 +1113,8 @@ static void perform_renew(void)
>>>     		state = RENEW_REQUESTED;
>>>     		break;
>>>     	case RENEW_REQUESTED: /* impatient are we? fine, square 1 */
>>> @@ -66,36 +65,37 @@ Index: busybox-1.20.2/networking/udhcp/dhcpc.c
>>>     	case REQUESTING:
>>>     	case RELEASED:
>>>     		change_listen_mode(LISTEN_RAW);
>>> -@@ -1064,7 +1069,8 @@ static void perform_release(uint32_t ser
>>> - 		bb_info_msg("Unicasting a release of %s to %s",
>>> - 				inet_ntoa(temp_addr), buffer);
>>> - 		send_release(server_addr, requested_ip); /* unicast */
>>> --		udhcp_run_script(NULL, "deconfig");
>>> -+		if (allow_deconfig)
>>> -+			udhcp_run_script(NULL, "deconfig");
>>> - 	}
>>> - 	bb_info_msg("Entering released state");
>>> +@@ -1146,7 +1150,8 @@ static void perform_release(uint32_t server_addr, uint32_t requested_ip)
>>> +  * Users requested to be notified in all cases, even if not in one
>>> +  * of the states above.
>>> +  */
>>> +-	udhcp_run_script(NULL, "deconfig");
>>> ++	if (allow_deconfig)
>>> ++		udhcp_run_script(NULL, "deconfig");
>>>     
>>> -@@ -1215,7 +1221,7 @@ int udhcpc_main(int argc UNUSED_PARAM, c
>>> + 	change_listen_mode(LISTEN_NONE);
>>> + 	state = RELEASED;
>>> +@@ -1298,7 +1303,7 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
>>>     	/* O,x: list; -T,-t,-A take numeric param */
>>> - 	opt_complementary = "O::x::T+:t+:A+" IF_UDHCP_VERBOSE(":vv") ;
>>> + 	IF_UDHCP_VERBOSE(opt_complementary = "vv";)
>>>     	IF_LONG_OPTS(applet_long_options = udhcpc_longopts;)
>>> --	opt = getopt32(argv, "CV:H:h:F:i:np:qRr:s:T:t:SA:O:ox:fB"
>>> -+	opt = getopt32(argv, "CV:H:h:F:i:np:qRr:s:T:t:SA:O:ox:fBD"
>>> +-	opt = getopt32(argv, "CV:H:h:F:i:np:qRr:s:T:+t:+SA:+O:*ox:*fB"
>>> ++	opt = getopt32(argv, "CV:H:h:F:i:np:qRr:s:T:+t:+SA:+O:*ox:*fBD"
>>>     		USE_FOR_MMU("b")
>>> - 		IF_FEATURE_UDHCPC_ARPING("a")
>>> + 		IF_FEATURE_UDHCPC_ARPING("a::")
>>>     		IF_FEATURE_UDHCP_PORT("P:")
>>> -@@ -1316,6 +1322,9 @@ int udhcpc_main(int argc UNUSED_PARAM, c
>>> +@@ -1409,6 +1414,10 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
>>>     		logmode |= LOGMODE_SYSLOG;
>>>     	}
>>>     
>>> -+	if (opt & OPT_D)
>>> ++	if (opt & OPT_D) {
>>>    +		allow_deconfig = 0;
>>> ++	}
>>>    +
>>>     	/* Make sure fd 0,1,2 are open */
>>>     	bb_sanitize_stdio();
>>>     	/* Equivalent of doing a fflush after every \n */
>>> -@@ -1330,7 +1339,8 @@ int udhcpc_main(int argc UNUSED_PARAM, c
>>> +@@ -1423,7 +1432,8 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
>>>     	srand(monotonic_us());
>>>     
>>>     	state = INIT_SELECTING;
>>> @@ -105,17 +105,17 @@ Index: busybox-1.20.2/networking/udhcp/dhcpc.c
>>>     	change_listen_mode(LISTEN_RAW);
>>>     	packet_num = 0;
>>>     	timeout = 0;
>>> -@@ -1484,7 +1494,8 @@ int udhcpc_main(int argc UNUSED_PARAM, c
>>> +@@ -1577,7 +1587,8 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
>>>     				}
>>>     				/* Timed out, enter init state */
>>> - 				bb_info_msg("Lease lost, entering init state");
>>> + 				bb_error_msg("lease lost, entering init state");
>>>    -				udhcp_run_script(NULL, "deconfig");
>>>    +				if (allow_deconfig)
>>>    +					udhcp_run_script(NULL, "deconfig");
>>>     				state = INIT_SELECTING;
>>>     				client_config.first_secs = 0; /* make secs field count from 0 */
>>>     				/*timeout = 0; - already is */
>>> -@@ -1667,7 +1678,8 @@ int udhcpc_main(int argc UNUSED_PARAM, c
>>> +@@ -1770,7 +1781,8 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
>>>     						send_decline(/*xid,*/ server_addr, packet.yiaddr);
>>>     
>>>     						if (state != REQUESTING)
>>> @@ -125,8 +125,8 @@ Index: busybox-1.20.2/networking/udhcp/dhcpc.c
>>>     						change_listen_mode(LISTEN_RAW);
>>>     						state = INIT_SELECTING;
>>>     						client_config.first_secs = 0; /* make secs field count from 0 */
>>> -@@ -1711,7 +1723,8 @@ int udhcpc_main(int argc UNUSED_PARAM, c
>>> - 				bb_info_msg("Received DHCP NAK");
>>> +@@ -1840,7 +1852,8 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
>>> + 				bb_error_msg("received %s", "DHCP NAK");
>>>     				udhcp_run_script(&packet, "nak");
>>>     				if (state != REQUESTING)
>>>    -					udhcp_run_script(NULL, "deconfig");
>>> diff --git a/meta/recipes-core/busybox/busybox/commit-applet_tables-fix-commit-0dddbc1.patch b/meta/recipes-core/busybox/busybox/commit-applet_tables-fix-commit-0dddbc1.patch
>>> deleted file mode 100644
>>> index 7f80a1d..0000000
>>> --- a/meta/recipes-core/busybox/busybox/commit-applet_tables-fix-commit-0dddbc1.patch
>>> +++ /dev/null
>>> @@ -1,61 +0,0 @@
>>> -Upstream-Status: Backport
>>> -
>>> -Patch addressing a parallel make race in Busybox
>>> -
>>> -  http://git.busybox.net/busybox/commit/?id=0dddbc1a59795a77679d8c5ef48a2795cb470563
>>> -
>>> -Signed-off-by: Juro Bystricky <juro.bystricky at intel.com>
>>> -
>>> -From 0dddbc1a59795a77679d8c5ef48a2795cb470563 Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Tue, 23 Aug 2016 20:21:36 +0200
>>> -Subject: build system: always rewrite NUM_APPLETS.h
>>> -
>>> -Conditional rewrite can keep NUM_APPLETS.h mtime old,
>>> -this causes make to try to regenerate it at every invocation.
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -
>>> -diff --git a/applets/applet_tables.c b/applets/applet_tables.c
>>> -index 8401a15..ef911a4 100644
>>> ---- a/applets/applet_tables.c
>>> -+++ b/applets/applet_tables.c
>>> -@@ -192,27 +192,28 @@ int main(int argc, char **argv)
>>> - 	printf("};\n");
>>> - #endif
>>> - 	//printf("#endif /* SKIP_definitions */\n");
>>> -+
>>> - //	printf("\n");
>>> - //	printf("#define MAX_APPLET_NAME_LEN %u\n", MAX_APPLET_NAME_LEN);
>>> -
>>> - 	if (argv[2]) {
>>> --		char line_old[80];
>>> --		char line_new[80];
>>> - 		FILE *fp;
>>> -+		char line_new[80];
>>> -+//		char line_old[80];
>>> -
>>> --		line_old[0] = 0;
>>> --		fp = fopen(argv[2], "r");
>>> --		if (fp) {
>>> --			fgets(line_old, sizeof(line_old), fp);
>>> --			fclose(fp);
>>> --		}
>>> - 		sprintf(line_new, "#define NUM_APPLETS %u\n", NUM_APPLETS);
>>> --		if (strcmp(line_old, line_new) != 0) {
>>> -+//		line_old[0] = 0;
>>> -+//		fp = fopen(argv[2], "r");
>>> -+//		if (fp) {
>>> -+//			fgets(line_old, sizeof(line_old), fp);
>>> -+//			fclose(fp);
>>> -+//		}
>>> -+//		if (strcmp(line_old, line_new) != 0) {
>>> - 			fp = fopen(argv[2], "w");
>>> - 			if (!fp)
>>> - 				return 1;
>>> - 			fputs(line_new, fp);
>>> --		}
>>> -+//		}
>>> - 	}
>>> -
>>> - 	return 0;
>>> diff --git a/meta/recipes-core/busybox/busybox/defconfig b/meta/recipes-core/busybox/busybox/defconfig
>>> index cc68bea..fbb5fd8 100644
>>> --- a/meta/recipes-core/busybox/busybox/defconfig
>>> +++ b/meta/recipes-core/busybox/busybox/defconfig
>>> @@ -1,43 +1,25 @@
>>>    #
>>>    # Automatically generated make config: don't edit
>>> -# Busybox version: 1.24.1
>>> -# Tue Oct 31 11:00:00 2015
>>> +# Busybox version: 1.27.2
>>> +# Wed Sep 27 08:56:13 2017
>>>    #
>>>    CONFIG_HAVE_DOT_CONFIG=y
>>>    
>>>    #
>>>    # Busybox Settings
>>>    #
>>> -
>>> -#
>>> -# General Configuration
>>> -#
>>>    # CONFIG_DESKTOP is not set
>>>    # CONFIG_EXTRA_COMPAT is not set
>>> +# CONFIG_FEDORA_COMPAT is not set
>>>    # CONFIG_INCLUDE_SUSv2 is not set
>>>    # CONFIG_USE_PORTABLE_CODE is not set
>>> -CONFIG_PLATFORM_LINUX=y
>>> -CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
>>> -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
>>> -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
>>>    CONFIG_SHOW_USAGE=y
>>>    # CONFIG_FEATURE_VERBOSE_USAGE is not set
>>>    CONFIG_FEATURE_COMPRESS_USAGE=y
>>> +CONFIG_BUSYBOX=y
>>>    # CONFIG_FEATURE_INSTALLER is not set
>>>    # CONFIG_INSTALL_NO_USR is not set
>>> -# CONFIG_LOCALE_SUPPORT is not set
>>> -# CONFIG_UNICODE_SUPPORT is not set
>>> -# CONFIG_UNICODE_USING_LOCALE is not set
>>> -# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
>>> -CONFIG_SUBST_WCHAR=0
>>> -CONFIG_LAST_SUPPORTED_WCHAR=0
>>> -# CONFIG_UNICODE_COMBINING_WCHARS is not set
>>> -# CONFIG_UNICODE_WIDE_WCHARS is not set
>>> -# CONFIG_UNICODE_BIDI_SUPPORT is not set
>>> -# CONFIG_UNICODE_NEUTRAL_TABLE is not set
>>> -# CONFIG_UNICODE_PRESERVE_BROKEN is not set
>>>    # CONFIG_PAM is not set
>>> -CONFIG_FEATURE_USE_SENDFILE=y
>>>    CONFIG_LONG_OPTS=y
>>>    CONFIG_FEATURE_DEVPTS=y
>>>    # CONFIG_FEATURE_CLEAN_UP is not set
>>> @@ -53,6 +35,7 @@ CONFIG_FEATURE_SUID_CONFIG_QUIET=y
>>>    CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
>>>    CONFIG_FEATURE_SYSLOG=y
>>>    # CONFIG_FEATURE_HAVE_RPC is not set
>>> +CONFIG_PLATFORM_LINUX=y
>>>    
>>>    #
>>>    # Build Options
>>> @@ -71,17 +54,6 @@ CONFIG_EXTRA_LDFLAGS=""
>>>    CONFIG_EXTRA_LDLIBS=""
>>>    
>>>    #
>>> -# Debugging Options
>>> -#
>>> -# CONFIG_DEBUG is not set
>>> -# CONFIG_DEBUG_PESSIMIZE is not set
>>> -# CONFIG_UNIT_TEST is not set
>>> -# CONFIG_WERROR is not set
>>> -CONFIG_NO_DEBUG_LIB=y
>>> -# CONFIG_DMALLOC is not set
>>> -# CONFIG_EFENCE is not set
>>> -
>>> -#
>>>    # Installation Options ("make install" behavior)
>>>    #
>>>    CONFIG_INSTALL_APPLET_SYMLINKS=y
>>> @@ -94,16 +66,30 @@ CONFIG_INSTALL_APPLET_SYMLINKS=y
>>>    CONFIG_PREFIX="./_install"
>>>    
>>>    #
>>> +# Debugging Options
>>> +#
>>> +# CONFIG_DEBUG is not set
>>> +# CONFIG_DEBUG_PESSIMIZE is not set
>>> +# CONFIG_DEBUG_SANITIZE is not set
>>> +# CONFIG_UNIT_TEST is not set
>>> +# CONFIG_WERROR is not set
>>> +CONFIG_NO_DEBUG_LIB=y
>>> +# CONFIG_DMALLOC is not set
>>> +# CONFIG_EFENCE is not set
>>> +
>>> +#
>>>    # Busybox Library Tuning
>>>    #
>>> -CONFIG_FEATURE_SYSTEMD=y
>>> +# CONFIG_FEATURE_USE_BSS_TAIL is not set
>>>    CONFIG_FEATURE_RTMINMAX=y
>>> +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
>>> +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
>>> +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
>>>    CONFIG_PASSWORD_MINLEN=6
>>>    CONFIG_MD5_SMALL=1
>>>    CONFIG_SHA3_SMALL=1
>>>    CONFIG_FEATURE_FAST_TOP=y
>>>    # CONFIG_FEATURE_ETC_NETWORKS is not set
>>> -CONFIG_FEATURE_USE_TERMIOS=y
>>>    CONFIG_FEATURE_EDITING=y
>>>    CONFIG_FEATURE_EDITING_MAX_LEN=1024
>>>    # CONFIG_FEATURE_EDITING_VI is not set
>>> @@ -115,8 +101,20 @@ CONFIG_FEATURE_TAB_COMPLETION=y
>>>    CONFIG_FEATURE_USERNAME_COMPLETION=y
>>>    CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
>>>    # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
>>> +# CONFIG_LOCALE_SUPPORT is not set
>>> +# CONFIG_UNICODE_SUPPORT is not set
>>> +# CONFIG_UNICODE_USING_LOCALE is not set
>>> +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set
>>> +CONFIG_SUBST_WCHAR=0
>>> +CONFIG_LAST_SUPPORTED_WCHAR=0
>>> +# CONFIG_UNICODE_COMBINING_WCHARS is not set
>>> +# CONFIG_UNICODE_WIDE_WCHARS is not set
>>> +# CONFIG_UNICODE_BIDI_SUPPORT is not set
>>> +# CONFIG_UNICODE_NEUTRAL_TABLE is not set
>>> +# CONFIG_UNICODE_PRESERVE_BROKEN is not set
>>>    CONFIG_FEATURE_NON_POSIX_CP=y
>>>    # CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
>>> +CONFIG_FEATURE_USE_SENDFILE=y
>>>    CONFIG_FEATURE_COPYBUF_KB=4
>>>    CONFIG_FEATURE_SKIP_ROOTFS=y
>>>    CONFIG_MONOTONIC_SYSCALL=y
>>> @@ -140,76 +138,59 @@ CONFIG_FEATURE_SEAMLESS_Z=y
>>>    # CONFIG_FEATURE_AR_CREATE is not set
>>>    # CONFIG_UNCOMPRESS is not set
>>>    CONFIG_GUNZIP=y
>>> +CONFIG_ZCAT=y
>>> +CONFIG_FEATURE_GUNZIP_LONG_OPTIONS=y
>>>    CONFIG_BUNZIP2=y
>>> +CONFIG_BZCAT=y
>>>    # CONFIG_UNLZMA is not set
>>> -# CONFIG_FEATURE_LZMA_FAST is not set
>>> +CONFIG_LZCAT=y
>>>    # CONFIG_LZMA is not set
>>> +# CONFIG_FEATURE_LZMA_FAST is not set
>>>    # CONFIG_UNXZ is not set
>>> +CONFIG_XZCAT=y
>>>    # CONFIG_XZ is not set
>>>    # CONFIG_BZIP2 is not set
>>> +CONFIG_FEATURE_BZIP2_DECOMPRESS=y
>>>    CONFIG_CPIO=y
>>>    # CONFIG_FEATURE_CPIO_O is not set
>>>    # CONFIG_FEATURE_CPIO_P is not set
>>>    # CONFIG_DPKG is not set
>>>    # CONFIG_DPKG_DEB is not set
>>> -# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
>>>    CONFIG_GZIP=y
>>>    # CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
>>>    CONFIG_GZIP_FAST=0
>>>    # CONFIG_FEATURE_GZIP_LEVELS is not set
>>> +CONFIG_FEATURE_GZIP_DECOMPRESS=y
>>>    # CONFIG_LZOP is not set
>>> +# CONFIG_UNLZOP is not set
>>> +# CONFIG_LZOPCAT is not set
>>>    # CONFIG_LZOP_COMPR_HIGH is not set
>>>    # CONFIG_RPM is not set
>>>    # CONFIG_RPM2CPIO is not set
>>>    CONFIG_TAR=y
>>> +# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
>>>    CONFIG_FEATURE_TAR_CREATE=y
>>>    CONFIG_FEATURE_TAR_AUTODETECT=y
>>>    CONFIG_FEATURE_TAR_FROM=y
>>>    CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
>>>    # CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
>>>    CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
>>> -# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
>>>    # CONFIG_FEATURE_TAR_TO_COMMAND is not set
>>>    # CONFIG_FEATURE_TAR_UNAME_GNAME is not set
>>>    CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y
>>>    # CONFIG_FEATURE_TAR_SELINUX is not set
>>>    CONFIG_UNZIP=y
>>> +CONFIG_FEATURE_UNZIP_CDF=y
>>> +# CONFIG_FEATURE_UNZIP_BZIP2 is not set
>>> +# CONFIG_FEATURE_UNZIP_LZMA is not set
>>> +# CONFIG_FEATURE_UNZIP_XZ is not set
>>>    
>>>    #
>>>    # Coreutils
>>>    #
>>>    CONFIG_BASENAME=y
>>>    CONFIG_CAT=y
>>> -CONFIG_DATE=y
>>> -# CONFIG_FEATURE_DATE_ISOFMT is not set
>>> -# CONFIG_FEATURE_DATE_NANO is not set
>>> -CONFIG_FEATURE_DATE_COMPAT=y
>>> -CONFIG_DD=y
>>> -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
>>> -# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
>>> -# CONFIG_FEATURE_DD_IBS_OBS is not set
>>> -# CONFIG_FEATURE_DD_STATUS is not set
>>> -# CONFIG_HOSTID is not set
>>> -CONFIG_ID=y
>>> -CONFIG_GROUPS=y
>>> -CONFIG_SHUF=y
>>> -CONFIG_SYNC=y
>>> -# CONFIG_FEATURE_SYNC_FANCY is not set
>>> -CONFIG_TEST=y
>>> -CONFIG_FEATURE_TEST_64=y
>>> -CONFIG_TOUCH=y
>>> -CONFIG_FEATURE_TOUCH_NODEREF=y
>>> -CONFIG_FEATURE_TOUCH_SUSV3=y
>>> -CONFIG_TR=y
>>> -CONFIG_FEATURE_TR_CLASSES=y
>>> -# CONFIG_FEATURE_TR_EQUIV is not set
>>> -# CONFIG_TRUNCATE is not set
>>> -CONFIG_UNLINK=y
>>> -# CONFIG_BASE64 is not set
>>> -CONFIG_WHO=y
>>> -CONFIG_USERS=y
>>> -# CONFIG_CAL is not set
>>> -# CONFIG_CATV is not set
>>> +# CONFIG_FEATURE_CATV is not set
>>>    CONFIG_CHGRP=y
>>>    CONFIG_CHMOD=y
>>>    CONFIG_CHOWN=y
>>> @@ -220,6 +201,15 @@ CONFIG_CHROOT=y
>>>    CONFIG_CP=y
>>>    # CONFIG_FEATURE_CP_LONG_OPTIONS is not set
>>>    CONFIG_CUT=y
>>> +CONFIG_DATE=y
>>> +# CONFIG_FEATURE_DATE_ISOFMT is not set
>>> +# CONFIG_FEATURE_DATE_NANO is not set
>>> +CONFIG_FEATURE_DATE_COMPAT=y
>>> +CONFIG_DD=y
>>> +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
>>> +# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
>>> +# CONFIG_FEATURE_DD_IBS_OBS is not set
>>> +# CONFIG_FEATURE_DD_STATUS is not set
>>>    CONFIG_DF=y
>>>    # CONFIG_FEATURE_DF_FANCY is not set
>>>    CONFIG_DIRNAME=y
>>> @@ -233,36 +223,57 @@ CONFIG_ENV=y
>>>    CONFIG_FEATURE_ENV_LONG_OPTIONS=y
>>>    # CONFIG_EXPAND is not set
>>>    # CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
>>> +# CONFIG_UNEXPAND is not set
>>> +# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
>>>    CONFIG_EXPR=y
>>>    CONFIG_EXPR_MATH_SUPPORT_64=y
>>> +# CONFIG_FACTOR is not set
>>>    CONFIG_FALSE=y
>>>    # CONFIG_FOLD is not set
>>>    # CONFIG_FSYNC is not set
>>>    CONFIG_HEAD=y
>>>    # CONFIG_FEATURE_FANCY_HEAD is not set
>>> +# CONFIG_HOSTID is not set
>>> +CONFIG_ID=y
>>> +CONFIG_GROUPS=y
>>>    # CONFIG_INSTALL is not set
>>>    # CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
>>> +# CONFIG_LINK is not set
>>>    CONFIG_LN=y
>>>    CONFIG_LOGNAME=y
>>>    CONFIG_LS=y
>>>    CONFIG_FEATURE_LS_FILETYPES=y
>>>    CONFIG_FEATURE_LS_FOLLOWLINKS=y
>>>    CONFIG_FEATURE_LS_RECURSIVE=y
>>> +CONFIG_FEATURE_LS_WIDTH=y
>>>    CONFIG_FEATURE_LS_SORTFILES=y
>>>    CONFIG_FEATURE_LS_TIMESTAMPS=y
>>>    CONFIG_FEATURE_LS_USERNAME=y
>>>    CONFIG_FEATURE_LS_COLOR=y
>>>    # CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
>>>    CONFIG_MD5SUM=y
>>> +# CONFIG_SHA1SUM is not set
>>> +# CONFIG_SHA256SUM is not set
>>> +# CONFIG_SHA512SUM is not set
>>> +# CONFIG_SHA3SUM is not set
>>> +
>>> +#
>>> +# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
>>> +#
>>> +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
>>>    CONFIG_MKDIR=y
>>>    CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y
>>>    CONFIG_MKFIFO=y
>>>    CONFIG_MKNOD=y
>>> +CONFIG_MKTEMP=y
>>>    CONFIG_MV=y
>>>    # CONFIG_FEATURE_MV_LONG_OPTIONS is not set
>>>    # CONFIG_NICE is not set
>>> +# CONFIG_NL is not set
>>>    CONFIG_NOHUP=y
>>> +CONFIG_NPROC=y
>>>    CONFIG_OD=y
>>> +# CONFIG_PASTE is not set
>>>    # CONFIG_PRINTENV is not set
>>>    CONFIG_PRINTF=y
>>>    CONFIG_PWD=y
>>> @@ -273,10 +284,8 @@ CONFIG_RM=y
>>>    CONFIG_RMDIR=y
>>>    # CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
>>>    CONFIG_SEQ=y
>>> -# CONFIG_SHA1SUM is not set
>>> -# CONFIG_SHA256SUM is not set
>>> -# CONFIG_SHA512SUM is not set
>>> -# CONFIG_SHA3SUM is not set
>>> +# CONFIG_SHRED is not set
>>> +CONFIG_SHUF=y
>>>    CONFIG_SLEEP=y
>>>    CONFIG_FEATURE_FANCY_SLEEP=y
>>>    CONFIG_FEATURE_FLOAT_SLEEP=y
>>> @@ -286,25 +295,43 @@ CONFIG_FEATURE_SORT_BIG=y
>>>    # CONFIG_FEATURE_SPLIT_FANCY is not set
>>>    CONFIG_STAT=y
>>>    CONFIG_FEATURE_STAT_FORMAT=y
>>> +CONFIG_FEATURE_STAT_FILESYSTEM=y
>>>    CONFIG_STTY=y
>>>    # CONFIG_SUM is not set
>>> +CONFIG_SYNC=y
>>> +# CONFIG_FEATURE_SYNC_FANCY is not set
>>>    # CONFIG_TAC is not set
>>>    CONFIG_TAIL=y
>>>    CONFIG_FEATURE_FANCY_TAIL=y
>>>    CONFIG_TEE=y
>>>    # CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
>>> +CONFIG_TEST=y
>>> +CONFIG_TEST1=y
>>> +CONFIG_TEST2=y
>>> +CONFIG_FEATURE_TEST_64=y
>>> +# CONFIG_TIMEOUT is not set
>>> +CONFIG_TOUCH=y
>>> +CONFIG_FEATURE_TOUCH_NODEREF=y
>>> +CONFIG_FEATURE_TOUCH_SUSV3=y
>>> +CONFIG_TR=y
>>> +CONFIG_FEATURE_TR_CLASSES=y
>>> +# CONFIG_FEATURE_TR_EQUIV is not set
>>>    CONFIG_TRUE=y
>>> +# CONFIG_TRUNCATE is not set
>>>    CONFIG_TTY=y
>>>    CONFIG_UNAME=y
>>>    CONFIG_UNAME_OSNAME="GNU/Linux"
>>> -# CONFIG_UNEXPAND is not set
>>> -# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
>>>    CONFIG_UNIQ=y
>>> +CONFIG_UNLINK=y
>>>    CONFIG_USLEEP=y
>>>    # CONFIG_UUDECODE is not set
>>> +# CONFIG_BASE64 is not set
>>>    # CONFIG_UUENCODE is not set
>>>    CONFIG_WC=y
>>>    # CONFIG_FEATURE_WC_LARGE is not set
>>> +CONFIG_WHO=y
>>> +# CONFIG_W is not set
>>> +CONFIG_USERS=y
>>>    CONFIG_WHOAMI=y
>>>    CONFIG_YES=y
>>>    
>>> @@ -319,30 +346,29 @@ CONFIG_FEATURE_VERBOSE=y
>>>    # CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
>>>    
>>>    #
>>> -# Common options for ls, more and telnet
>>> -#
>>> -CONFIG_FEATURE_AUTOWIDTH=y
>>> -
>>> -#
>>>    # Common options for df, du, ls
>>>    #
>>>    CONFIG_FEATURE_HUMAN_READABLE=y
>>>    
>>>    #
>>> -# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum
>>> -#
>>> -CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y
>>> -
>>> -#
>>>    # Console Utilities
>>>    #
>>>    CONFIG_CHVT=y
>>> -# CONFIG_FGCONSOLE is not set
>>>    CONFIG_CLEAR=y
>>>    CONFIG_DEALLOCVT=y
>>>    CONFIG_DUMPKMAP=y
>>> +# CONFIG_FGCONSOLE is not set
>>>    # CONFIG_KBD_MODE is not set
>>>    CONFIG_LOADFONT=y
>>> +# CONFIG_SETFONT is not set
>>> +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
>>> +CONFIG_DEFAULT_SETFONT_DIR=""
>>> +
>>> +#
>>> +# Common options for loadfont and setfont
>>> +#
>>> +# CONFIG_FEATURE_LOADFONT_PSF2 is not set
>>> +# CONFIG_FEATURE_LOADFONT_RAW is not set
>>>    CONFIG_LOADKMAP=y
>>>    CONFIG_OPENVT=y
>>>    CONFIG_RESET=y
>>> @@ -350,30 +376,20 @@ CONFIG_RESET=y
>>>    # CONFIG_FEATURE_RESIZE_PRINT is not set
>>>    CONFIG_SETCONSOLE=y
>>>    # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
>>> -# CONFIG_SETFONT is not set
>>> -# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set
>>> -CONFIG_DEFAULT_SETFONT_DIR=""
>>>    # CONFIG_SETKEYCODES is not set
>>>    # CONFIG_SETLOGCONS is not set
>>>    # CONFIG_SHOWKEY is not set
>>>    
>>>    #
>>> -# Common options for loadfont and setfont
>>> -#
>>> -# CONFIG_FEATURE_LOADFONT_PSF2 is not set
>>> -# CONFIG_FEATURE_LOADFONT_RAW is not set
>>> -
>>> -#
>>>    # Debian Utilities
>>>    #
>>> -CONFIG_MKTEMP=y
>>>    # CONFIG_PIPE_PROGRESS is not set
>>>    CONFIG_RUN_PARTS=y
>>>    CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y
>>>    # CONFIG_FEATURE_RUN_PARTS_FANCY is not set
>>>    CONFIG_START_STOP_DAEMON=y
>>> -CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
>>>    CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y
>>> +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y
>>>    CONFIG_WHICH=y
>>>    
>>>    #
>>> @@ -436,8 +452,8 @@ CONFIG_FEATURE_FIND_REGEX=y
>>>    # CONFIG_FEATURE_FIND_CONTEXT is not set
>>>    # CONFIG_FEATURE_FIND_LINKS is not set
>>>    CONFIG_GREP=y
>>> -CONFIG_FEATURE_GREP_EGREP_ALIAS=y
>>> -CONFIG_FEATURE_GREP_FGREP_ALIAS=y
>>> +CONFIG_EGREP=y
>>> +CONFIG_FGREP=y
>>>    CONFIG_FEATURE_GREP_CONTEXT=y
>>>    CONFIG_XARGS=y
>>>    # CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
>>> @@ -453,40 +469,45 @@ CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR=y
>>>    # CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER is not set
>>>    # CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE is not set
>>>    CONFIG_HALT=y
>>> +CONFIG_POWEROFF=y
>>> +CONFIG_REBOOT=y
>>>    # CONFIG_FEATURE_CALL_TELINIT is not set
>>>    CONFIG_TELINIT_PATH=""
>>>    # CONFIG_INIT is not set
>>> +# CONFIG_LINUXRC is not set
>>>    # CONFIG_FEATURE_USE_INITTAB is not set
>>>    # CONFIG_FEATURE_KILL_REMOVED is not set
>>>    CONFIG_FEATURE_KILL_DELAY=0
>>>    # CONFIG_FEATURE_INIT_SCTTY is not set
>>>    # CONFIG_FEATURE_INIT_SYSLOG is not set
>>> -# CONFIG_FEATURE_EXTRA_QUIET is not set
>>> +# CONFIG_FEATURE_INIT_QUIET is not set
>>>    # CONFIG_FEATURE_INIT_COREDUMPS is not set
>>> -# CONFIG_FEATURE_INITRD is not set
>>>    CONFIG_INIT_TERMINAL_TYPE=""
>>> -CONFIG_MESG=y
>>> -# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
>>> +# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set
>>>    
>>>    #
>>>    # Login/Password Management Utilities
>>>    #
>>> -# CONFIG_ADD_SHELL is not set
>>> -# CONFIG_REMOVE_SHELL is not set
>>>    # CONFIG_FEATURE_SHADOWPASSWDS is not set
>>>    # CONFIG_USE_BB_PWD_GRP is not set
>>>    # CONFIG_USE_BB_SHADOW is not set
>>>    CONFIG_USE_BB_CRYPT=y
>>>    # CONFIG_USE_BB_CRYPT_SHA is not set
>>> +# CONFIG_ADD_SHELL is not set
>>> +# CONFIG_REMOVE_SHELL is not set
>>> +# CONFIG_ADDGROUP is not set
>>> +# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
>>> +# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
>>>    # CONFIG_ADDUSER is not set
>>>    # CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
>>>    # CONFIG_FEATURE_CHECK_NAMES is not set
>>>    CONFIG_LAST_ID=60000
>>>    CONFIG_FIRST_SYSTEM_ID=100
>>>    CONFIG_LAST_SYSTEM_ID=999
>>> -# CONFIG_ADDGROUP is not set
>>> -# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
>>> -# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
>>> +# CONFIG_CHPASSWD is not set
>>> +CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
>>> +# CONFIG_CRYPTPW is not set
>>> +# CONFIG_MKPASSWD is not set
>>>    # CONFIG_DELUSER is not set
>>>    # CONFIG_DELGROUP is not set
>>>    # CONFIG_FEATURE_DEL_USER_FROM_GROUP is not set
>>> @@ -498,12 +519,10 @@ CONFIG_LAST_SYSTEM_ID=999
>>>    # CONFIG_FEATURE_SECURETTY is not set
>>>    # CONFIG_PASSWD is not set
>>>    # CONFIG_FEATURE_PASSWD_WEAK_CHECK is not set
>>> -# CONFIG_CRYPTPW is not set
>>> -# CONFIG_CHPASSWD is not set
>>> -CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
>>>    # CONFIG_SU is not set
>>>    # CONFIG_FEATURE_SU_SYSLOG is not set
>>>    # CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
>>> +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set
>>>    # CONFIG_SULOGIN is not set
>>>    # CONFIG_VLOCK is not set
>>>    
>>> @@ -518,29 +537,29 @@ CONFIG_FSCK=y
>>>    #
>>>    # Linux Module Utilities
>>>    #
>>> -# CONFIG_MODINFO is not set
>>>    # CONFIG_MODPROBE_SMALL is not set
>>> -# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
>>> -# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
>>> +CONFIG_DEPMOD=y
>>>    CONFIG_INSMOD=y
>>> -CONFIG_RMMOD=y
>>>    CONFIG_LSMOD=y
>>>    # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
>>> +# CONFIG_MODINFO is not set
>>>    CONFIG_MODPROBE=y
>>>    # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
>>> -CONFIG_DEPMOD=y
>>> +CONFIG_RMMOD=y
>>>    
>>>    #
>>>    # Options common to multiple modutils
>>>    #
>>> +CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS=y
>>> +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
>>>    # CONFIG_FEATURE_2_4_MODULES is not set
>>> -# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
>>>    # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
>>>    # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
>>>    # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
>>>    # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
>>>    # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
>>>    CONFIG_FEATURE_CHECK_TAINTED_MODULE=y
>>> +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
>>>    CONFIG_FEATURE_MODUTILS_ALIAS=y
>>>    CONFIG_FEATURE_MODUTILS_SYMBOLS=y
>>>    CONFIG_DEFAULT_MODULES_DIR="/lib/modules"
>>> @@ -549,40 +568,23 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
>>>    #
>>>    # Linux System Utilities
>>>    #
>>> -# CONFIG_BLOCKDEV is not set
>>> -# CONFIG_FATATTR is not set
>>> -CONFIG_FSTRIM=y
>>> -# CONFIG_MDEV is not set
>>> -# CONFIG_FEATURE_MDEV_CONF is not set
>>> -# CONFIG_FEATURE_MDEV_RENAME is not set
>>> -# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
>>> -# CONFIG_FEATURE_MDEV_EXEC is not set
>>> -# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
>>> -CONFIG_MOUNT=y
>>> -# CONFIG_FEATURE_MOUNT_FAKE is not set
>>> -# CONFIG_FEATURE_MOUNT_VERBOSE is not set
>>> -# CONFIG_FEATURE_MOUNT_HELPERS is not set
>>> -# CONFIG_FEATURE_MOUNT_LABEL is not set
>>> -# CONFIG_FEATURE_MOUNT_NFS is not set
>>> -# CONFIG_FEATURE_MOUNT_CIFS is not set
>>> -CONFIG_FEATURE_MOUNT_FLAGS=y
>>> -CONFIG_FEATURE_MOUNT_FSTAB=y
>>> -# CONFIG_FEATURE_MOUNT_OTHERTAB is not set
>>> -# CONFIG_REV is not set
>>> -# CONFIG_UEVENT is not set
>>>    # CONFIG_ACPID is not set
>>>    # CONFIG_FEATURE_ACPID_COMPAT is not set
>>> +# CONFIG_BLKDISCARD is not set
>>>    # CONFIG_BLKID is not set
>>>    # CONFIG_FEATURE_BLKID_TYPE is not set
>>> +# CONFIG_BLOCKDEV is not set
>>> +# CONFIG_CAL is not set
>>>    CONFIG_DMESG=y
>>>    CONFIG_FEATURE_DMESG_PRETTY=y
>>> +# CONFIG_FALLOCATE is not set
>>> +# CONFIG_FATATTR is not set
>>>    CONFIG_FBSET=y
>>>    CONFIG_FEATURE_FBSET_FANCY=y
>>>    CONFIG_FEATURE_FBSET_READMODE=y
>>> -# CONFIG_FDFLUSH is not set
>>>    # CONFIG_FDFORMAT is not set
>>>    CONFIG_FDISK=y
>>> -CONFIG_FDISK_SUPPORT_LARGE_DISKS=y
>>> +# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
>>>    CONFIG_FEATURE_FDISK_WRITABLE=y
>>>    # CONFIG_FEATURE_AIX_LABEL is not set
>>>    # CONFIG_FEATURE_SGI_LABEL is not set
>>> @@ -592,43 +594,82 @@ CONFIG_FEATURE_FDISK_WRITABLE=y
>>>    # CONFIG_FEATURE_FDISK_ADVANCED is not set
>>>    # CONFIG_FINDFS is not set
>>>    CONFIG_FLOCK=y
>>> +# CONFIG_FDFLUSH is not set
>>>    # CONFIG_FREERAMDISK is not set
>>>    # CONFIG_FSCK_MINIX is not set
>>> -# CONFIG_MKFS_EXT2 is not set
>>> -# CONFIG_MKFS_MINIX is not set
>>> -# CONFIG_FEATURE_MINIX2 is not set
>>> -# CONFIG_MKFS_REISER is not set
>>> -# CONFIG_MKFS_VFAT is not set
>>> +# CONFIG_FSFREEZE is not set
>>> +CONFIG_FSTRIM=y
>>>    # CONFIG_GETOPT is not set
>>>    # CONFIG_FEATURE_GETOPT_LONG is not set
>>>    CONFIG_HEXDUMP=y
>>>    # CONFIG_FEATURE_HEXDUMP_REVERSE is not set
>>>    # CONFIG_HD is not set
>>> +# CONFIG_XXD is not set
>>>    CONFIG_HWCLOCK=y
>>>    CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y
>>>    CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS=y
>>>    # CONFIG_IPCRM is not set
>>>    # CONFIG_IPCS is not set
>>> +# CONFIG_LAST is not set
>>> +# CONFIG_FEATURE_LAST_FANCY is not set
>>>    CONFIG_LOSETUP=y
>>>    # CONFIG_LSPCI is not set
>>>    # CONFIG_LSUSB is not set
>>> +# CONFIG_MDEV is not set
>>> +# CONFIG_FEATURE_MDEV_CONF is not set
>>> +# CONFIG_FEATURE_MDEV_RENAME is not set
>>> +# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
>>> +# CONFIG_FEATURE_MDEV_EXEC is not set
>>> +# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
>>> +CONFIG_MESG=y
>>> +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
>>> +# CONFIG_MKE2FS is not set
>>> +# CONFIG_MKFS_EXT2 is not set
>>> +# CONFIG_MKFS_MINIX is not set
>>> +# CONFIG_FEATURE_MINIX2 is not set
>>> +# CONFIG_MKFS_REISER is not set
>>> +# CONFIG_MKDOSFS is not set
>>> +# CONFIG_MKFS_VFAT is not set
>>>    CONFIG_MKSWAP=y
>>>    # CONFIG_FEATURE_MKSWAP_UUID is not set
>>>    CONFIG_MORE=y
>>> +CONFIG_MOUNT=y
>>> +# CONFIG_FEATURE_MOUNT_FAKE is not set
>>> +# CONFIG_FEATURE_MOUNT_VERBOSE is not set
>>> +# CONFIG_FEATURE_MOUNT_HELPERS is not set
>>> +# CONFIG_FEATURE_MOUNT_LABEL is not set
>>> +# CONFIG_FEATURE_MOUNT_NFS is not set
>>> +# CONFIG_FEATURE_MOUNT_CIFS is not set
>>> +CONFIG_FEATURE_MOUNT_FLAGS=y
>>> +CONFIG_FEATURE_MOUNT_FSTAB=y
>>> +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set
>>> +# CONFIG_NSENTER is not set
>>> +# CONFIG_FEATURE_NSENTER_LONG_OPTS is not set
>>>    CONFIG_PIVOT_ROOT=y
>>>    CONFIG_RDATE=y
>>>    # CONFIG_RDEV is not set
>>>    # CONFIG_READPROFILE is not set
>>> +CONFIG_RENICE=y
>>> +# CONFIG_REV is not set
>>>    # CONFIG_RTCWAKE is not set
>>>    # CONFIG_SCRIPT is not set
>>>    # CONFIG_SCRIPTREPLAY is not set
>>>    # CONFIG_SETARCH is not set
>>> -CONFIG_SWAPONOFF=y
>>> +# CONFIG_LINUX32 is not set
>>> +# CONFIG_LINUX64 is not set
>>> +# CONFIG_SETPRIV is not set
>>> +CONFIG_SWAPON=y
>>>    CONFIG_FEATURE_SWAPON_DISCARD=y
>>>    CONFIG_FEATURE_SWAPON_PRI=y
>>> +CONFIG_SWAPOFF=y
>>>    CONFIG_SWITCH_ROOT=y
>>> +# CONFIG_TASKSET is not set
>>> +# CONFIG_FEATURE_TASKSET_FANCY is not set
>>> +# CONFIG_UEVENT is not set
>>>    CONFIG_UMOUNT=y
>>>    CONFIG_FEATURE_UMOUNT_ALL=y
>>> +# CONFIG_UNSHARE is not set
>>> +# CONFIG_WALL is not set
>>>    
>>>    #
>>>    # Common options for mount/umount
>>> @@ -637,6 +678,7 @@ CONFIG_FEATURE_MOUNT_LOOP=y
>>>    CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
>>>    # CONFIG_FEATURE_MTAB_SUPPORT is not set
>>>    # CONFIG_VOLUMEID is not set
>>> +# CONFIG_FEATURE_VOLUMEID_BCACHE is not set
>>>    # CONFIG_FEATURE_VOLUMEID_BTRFS is not set
>>>    # CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
>>>    # CONFIG_FEATURE_VOLUMEID_EXFAT is not set
>>> @@ -656,17 +698,33 @@ CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
>>>    # CONFIG_FEATURE_VOLUMEID_ROMFS is not set
>>>    # CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
>>>    # CONFIG_FEATURE_VOLUMEID_SYSV is not set
>>> +# CONFIG_FEATURE_VOLUMEID_UBIFS is not set
>>>    # CONFIG_FEATURE_VOLUMEID_UDF is not set
>>>    # CONFIG_FEATURE_VOLUMEID_XFS is not set
>>>    
>>>    #
>>>    # Miscellaneous Utilities
>>>    #
>>> +# CONFIG_BEEP is not set
>>> +CONFIG_FEATURE_BEEP_FREQ=0
>>> +CONFIG_FEATURE_BEEP_LENGTH_MS=0
>>>    # CONFIG_CONSPY is not set
>>>    # CONFIG_CROND is not set
>>>    # CONFIG_FEATURE_CROND_D is not set
>>>    # CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
>>>    CONFIG_FEATURE_CROND_DIR=""
>>> +# CONFIG_DEVFSD is not set
>>> +# CONFIG_DEVFSD_MODLOAD is not set
>>> +# CONFIG_DEVFSD_FG_NP is not set
>>> +# CONFIG_DEVFSD_VERBOSE is not set
>>> +# CONFIG_FEATURE_DEVFS is not set
>>> +# CONFIG_HDPARM is not set
>>> +# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
>>> +# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
>>> +# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
>>> +# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
>>> +# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
>>> +# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
>>>    # CONFIG_I2CGET is not set
>>>    # CONFIG_I2CSET is not set
>>>    # CONFIG_I2CDUMP is not set
>>> @@ -682,19 +740,19 @@ CONFIG_FEATURE_LESS_FLAGS=y
>>>    # CONFIG_FEATURE_LESS_ASK_TERMINAL is not set
>>>    # CONFIG_FEATURE_LESS_DASHCMD is not set
>>>    # CONFIG_FEATURE_LESS_LINENUMS is not set
>>> +# CONFIG_LSSCSI is not set
>>>    # CONFIG_NANDWRITE is not set
>>>    # CONFIG_NANDDUMP is not set
>>> +# CONFIG_PARTPROBE is not set
>>>    CONFIG_RFKILL=y
>>>    # CONFIG_SETSERIAL is not set
>>> -# CONFIG_TASKSET is not set
>>> -# CONFIG_FEATURE_TASKSET_FANCY is not set
>>>    # CONFIG_UBIATTACH is not set
>>>    # CONFIG_UBIDETACH is not set
>>>    # CONFIG_UBIMKVOL is not set
>>>    # CONFIG_UBIRMVOL is not set
>>>    # CONFIG_UBIRSVOL is not set
>>>    # CONFIG_UBIUPDATEVOL is not set
>>> -# CONFIG_WALL is not set
>>> +# CONFIG_UBIRENAME is not set
>>>    # CONFIG_ADJTIMEX is not set
>>>    # CONFIG_BBCONFIG is not set
>>>    # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
>>> @@ -729,7 +787,6 @@ CONFIG_DC=y
>>>    # CONFIG_IONICE is not set
>>>    # CONFIG_INOTIFYD is not set
>>>    # CONFIG_LAST is not set
>>> -# CONFIG_FEATURE_LAST_SMALL is not set
>>>    # CONFIG_FEATURE_LAST_FANCY is not set
>>>    # CONFIG_HDPARM is not set
>>>    # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
>>> @@ -760,24 +817,6 @@ CONFIG_TIME=y
>>>    #
>>>    # Networking Utilities
>>>    #
>>> -# CONFIG_NAMEIF is not set
>>> -# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
>>> -# CONFIG_NBDCLIENT is not set
>>> -CONFIG_NC=y
>>> -# CONFIG_NC_SERVER is not set
>>> -# CONFIG_NC_EXTRA is not set
>>> -# CONFIG_NC_110_COMPAT is not set
>>> -CONFIG_PING=y
>>> -CONFIG_PING6=y
>>> -CONFIG_FEATURE_FANCY_PING=y
>>> -CONFIG_WGET=y
>>> -CONFIG_FEATURE_WGET_STATUSBAR=y
>>> -CONFIG_FEATURE_WGET_AUTHENTICATION=y
>>> -CONFIG_FEATURE_WGET_LONG_OPTIONS=y
>>> -CONFIG_FEATURE_WGET_TIMEOUT=y
>>> -# CONFIG_FEATURE_WGET_OPENSSL is not set
>>> -# CONFIG_FEATURE_WGET_SSL_HELPER is not set
>>> -# CONFIG_WHOIS is not set
>>>    CONFIG_FEATURE_IPV6=y
>>>    # CONFIG_FEATURE_UNIX_LOCAL is not set
>>>    CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
>>> @@ -789,15 +828,15 @@ CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y
>>>    # CONFIG_FEATURE_BRCTL_SHOW is not set
>>>    # CONFIG_DNSD is not set
>>>    # CONFIG_ETHER_WAKE is not set
>>> -# CONFIG_FAKEIDENTD is not set
>>>    # CONFIG_FTPD is not set
>>> -# CONFIG_FEATURE_FTP_WRITE is not set
>>> +# CONFIG_FEATURE_FTPD_WRITE is not set
>>>    # CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set
>>> -# CONFIG_FEATURE_FTP_AUTHENTICATION is not set
>>> +# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set
>>>    # CONFIG_FTPGET is not set
>>>    # CONFIG_FTPPUT is not set
>>>    # CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
>>>    CONFIG_HOSTNAME=y
>>> +CONFIG_DNSDOMAINNAME=y
>>>    # CONFIG_HTTPD is not set
>>>    # CONFIG_FEATURE_HTTPD_RANGES is not set
>>>    # CONFIG_FEATURE_HTTPD_SETUID is not set
>>> @@ -818,11 +857,10 @@ CONFIG_FEATURE_IFCONFIG_HW=y
>>>    # CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS is not set
>>>    # CONFIG_IFENSLAVE is not set
>>>    # CONFIG_IFPLUGD is not set
>>> -CONFIG_IFUPDOWN=y
>>> +CONFIG_IFUP=y
>>> +CONFIG_IFDOWN=y
>>>    CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
>>>    CONFIG_FEATURE_IFUPDOWN_IP=y
>>> -CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y
>>> -# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set
>>>    CONFIG_FEATURE_IFUPDOWN_IPV4=y
>>>    CONFIG_FEATURE_IFUPDOWN_IPV6=y
>>>    CONFIG_FEATURE_IFUPDOWN_MAPPING=y
>>> @@ -835,22 +873,31 @@ CONFIG_FEATURE_IFUPDOWN_EXTERNAL_DHCP=y
>>>    # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
>>>    # CONFIG_FEATURE_INETD_RPC is not set
>>>    CONFIG_IP=y
>>> +# CONFIG_IPADDR is not set
>>> +# CONFIG_IPLINK is not set
>>> +# CONFIG_IPROUTE is not set
>>> +# CONFIG_IPTUNNEL is not set
>>> +# CONFIG_IPRULE is not set
>>> +# CONFIG_IPNEIGH is not set
>>>    CONFIG_FEATURE_IP_ADDRESS=y
>>>    CONFIG_FEATURE_IP_LINK=y
>>>    CONFIG_FEATURE_IP_ROUTE=y
>>>    CONFIG_FEATURE_IP_ROUTE_DIR="/etc/iproute2"
>>>    CONFIG_FEATURE_IP_TUNNEL=y
>>>    # CONFIG_FEATURE_IP_RULE is not set
>>> -# CONFIG_FEATURE_IP_SHORT_FORMS is not set
>>> +# CONFIG_FEATURE_IP_NEIGH is not set
>>>    # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
>>> -# CONFIG_IPADDR is not set
>>> -# CONFIG_IPLINK is not set
>>> -# CONFIG_IPROUTE is not set
>>> -# CONFIG_IPTUNNEL is not set
>>> -# CONFIG_IPRULE is not set
>>>    # CONFIG_IPCALC is not set
>>> -# CONFIG_FEATURE_IPCALC_FANCY is not set
>>>    # CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
>>> +# CONFIG_FEATURE_IPCALC_FANCY is not set
>>> +# CONFIG_FAKEIDENTD is not set
>>> +# CONFIG_NAMEIF is not set
>>> +# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
>>> +# CONFIG_NBDCLIENT is not set
>>> +CONFIG_NC=y
>>> +# CONFIG_NC_SERVER is not set
>>> +# CONFIG_NC_EXTRA is not set
>>> +# CONFIG_NC_110_COMPAT is not set
>>>    CONFIG_NETSTAT=y
>>>    # CONFIG_FEATURE_NETSTAT_WIDE is not set
>>>    # CONFIG_FEATURE_NETSTAT_PRG is not set
>>> @@ -858,13 +905,19 @@ CONFIG_NSLOOKUP=y
>>>    # CONFIG_NTPD is not set
>>>    # CONFIG_FEATURE_NTPD_SERVER is not set
>>>    # CONFIG_FEATURE_NTPD_CONF is not set
>>> +CONFIG_PING=y
>>> +CONFIG_PING6=y
>>> +CONFIG_FEATURE_FANCY_PING=y
>>>    # CONFIG_PSCAN is not set
>>>    CONFIG_ROUTE=y
>>>    # CONFIG_SLATTACH is not set
>>> +# CONFIG_SSL_CLIENT is not set
>>>    # CONFIG_TCPSVD is not set
>>> +# CONFIG_UDPSVD is not set
>>>    CONFIG_TELNET=y
>>>    # CONFIG_FEATURE_TELNET_TTYPE is not set
>>>    CONFIG_FEATURE_TELNET_AUTOLOGIN=y
>>> +CONFIG_FEATURE_TELNET_WIDTH=y
>>>    # CONFIG_TELNETD is not set
>>>    # CONFIG_FEATURE_TELNETD_STANDALONE is not set
>>>    # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
>>> @@ -879,33 +932,43 @@ CONFIG_FEATURE_TFTP_PUT=y
>>>    # CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
>>>    # CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
>>>    # CONFIG_TFTP_DEBUG is not set
>>> +CONFIG_TLS=y
>>>    CONFIG_TRACEROUTE=y
>>>    # CONFIG_TRACEROUTE6 is not set
>>>    # CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
>>> -# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
>>>    # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
>>>    # CONFIG_TUNCTL is not set
>>>    # CONFIG_FEATURE_TUNCTL_UG is not set
>>> +# CONFIG_VCONFIG is not set
>>> +CONFIG_WGET=y
>>> +CONFIG_FEATURE_WGET_LONG_OPTIONS=y
>>> +CONFIG_FEATURE_WGET_STATUSBAR=y
>>> +CONFIG_FEATURE_WGET_AUTHENTICATION=y
>>> +CONFIG_FEATURE_WGET_TIMEOUT=y
>>> +CONFIG_FEATURE_WGET_HTTPS=y
>>> +# CONFIG_FEATURE_WGET_OPENSSL is not set
>>> +# CONFIG_WHOIS is not set
>>> +# CONFIG_ZCIP is not set
>>>    # CONFIG_UDHCPC6 is not set
>>> +# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set
>>> +# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set
>>> +# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set
>>>    CONFIG_UDHCPD=y
>>> -# CONFIG_DHCPRELAY is not set
>>> -CONFIG_DUMPLEASES=y
>>>    # CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
>>>    # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
>>>    CONFIG_DHCPD_LEASES_FILE="/var/lib/misc/udhcpd.leases"
>>> +CONFIG_DUMPLEASES=y
>>> +# CONFIG_DHCPRELAY is not set
>>>    CONFIG_UDHCPC=y
>>>    CONFIG_FEATURE_UDHCPC_ARPING=y
>>>    CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
>>> +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
>>>    # CONFIG_FEATURE_UDHCP_PORT is not set
>>>    CONFIG_UDHCP_DEBUG=0
>>>    # CONFIG_FEATURE_UDHCP_RFC3397 is not set
>>>    # CONFIG_FEATURE_UDHCP_8021Q is not set
>>> -CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
>>>    CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80
>>> -CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
>>> -# CONFIG_UDPSVD is not set
>>> -# CONFIG_VCONFIG is not set
>>> -# CONFIG_ZCIP is not set
>>> +CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -b"
>>>    
>>>    #
>>>    # Print Utilities
>>> @@ -918,26 +981,45 @@ CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n"
>>>    # Mail Utilities
>>>    #
>>>    # CONFIG_MAKEMIME is not set
>>> -CONFIG_FEATURE_MIME_CHARSET=""
>>>    # CONFIG_POPMAILDIR is not set
>>>    # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
>>>    # CONFIG_REFORMIME is not set
>>>    # CONFIG_FEATURE_REFORMIME_COMPAT is not set
>>>    # CONFIG_SENDMAIL is not set
>>> +CONFIG_FEATURE_MIME_CHARSET=""
>>>    
>>>    #
>>>    # Process Utilities
>>>    #
>>> +CONFIG_FREE=y
>>> +CONFIG_FUSER=y
>>>    # CONFIG_IOSTAT is not set
>>> +CONFIG_KILL=y
>>> +CONFIG_KILLALL=y
>>> +# CONFIG_KILLALL5 is not set
>>>    # CONFIG_LSOF is not set
>>>    # CONFIG_MPSTAT is not set
>>>    # CONFIG_NMETER is not set
>>> +# CONFIG_PGREP is not set
>>> +# CONFIG_PKILL is not set
>>> +CONFIG_PIDOF=y
>>> +# CONFIG_FEATURE_PIDOF_SINGLE is not set
>>> +# CONFIG_FEATURE_PIDOF_OMIT is not set
>>>    # CONFIG_PMAP is not set
>>>    # CONFIG_POWERTOP is not set
>>> +# CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set
>>> +CONFIG_PS=y
>>> +CONFIG_FEATURE_PS_WIDE=y
>>> +CONFIG_FEATURE_PS_LONG=y
>>> +# CONFIG_FEATURE_PS_TIME is not set
>>> +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
>>> +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
>>>    # CONFIG_PSTREE is not set
>>>    # CONFIG_PWDX is not set
>>>    # CONFIG_SMEMCAP is not set
>>> +CONFIG_BB_SYSCTL=y
>>>    CONFIG_TOP=y
>>> +# CONFIG_FEATURE_TOP_INTERACTIVE is not set
>>>    CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
>>>    CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
>>>    # CONFIG_FEATURE_TOP_SMP_CPU is not set
>>> @@ -946,84 +1028,69 @@ CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y
>>>    # CONFIG_FEATURE_TOPMEM is not set
>>>    CONFIG_UPTIME=y
>>>    # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
>>> -CONFIG_FREE=y
>>> -CONFIG_FUSER=y
>>> -CONFIG_KILL=y
>>> -CONFIG_KILLALL=y
>>> -# CONFIG_KILLALL5 is not set
>>> -# CONFIG_PGREP is not set
>>> -CONFIG_PIDOF=y
>>> -# CONFIG_FEATURE_PIDOF_SINGLE is not set
>>> -# CONFIG_FEATURE_PIDOF_OMIT is not set
>>> -# CONFIG_PKILL is not set
>>> -CONFIG_PS=y
>>> -CONFIG_FEATURE_PS_WIDE=y
>>> -CONFIG_FEATURE_PS_LONG=y
>>> -# CONFIG_FEATURE_PS_TIME is not set
>>> -# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
>>> -# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
>>> -CONFIG_RENICE=y
>>> -CONFIG_BB_SYSCTL=y
>>> -# CONFIG_FEATURE_SHOW_THREADS is not set
>>>    CONFIG_WATCH=y
>>> +# CONFIG_FEATURE_SHOW_THREADS is not set
>>>    
>>>    #
>>>    # Runit Utilities
>>>    #
>>> +# CONFIG_CHPST is not set
>>> +# CONFIG_SETUIDGID is not set
>>> +# CONFIG_ENVUIDGID is not set
>>> +# CONFIG_ENVDIR is not set
>>> +# CONFIG_SOFTLIMIT is not set
>>>    # CONFIG_RUNSV is not set
>>>    # CONFIG_RUNSVDIR is not set
>>>    # CONFIG_FEATURE_RUNSVDIR_LOG is not set
>>>    # CONFIG_SV is not set
>>>    CONFIG_SV_DEFAULT_SERVICE_DIR=""
>>> +# CONFIG_SVC is not set
>>>    # CONFIG_SVLOGD is not set
>>> -# CONFIG_CHPST is not set
>>> -# CONFIG_SETUIDGID is not set
>>> -# CONFIG_ENVUIDGID is not set
>>> -# CONFIG_ENVDIR is not set
>>> -# CONFIG_SOFTLIMIT is not set
>>> -
>>> -#
>>> -#  SELinux utilities
>>> -#
>>>    # CONFIG_CHCON is not set
>>>    # CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
>>>    # CONFIG_GETENFORCE is not set
>>>    # CONFIG_GETSEBOOL is not set
>>>    # CONFIG_LOAD_POLICY is not set
>>>    # CONFIG_MATCHPATHCON is not set
>>> -# CONFIG_RESTORECON is not set
>>>    # CONFIG_RUNCON is not set
>>>    # CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
>>>    # CONFIG_SELINUXENABLED is not set
>>> +# CONFIG_SESTATUS is not set
>>>    # CONFIG_SETENFORCE is not set
>>>    # CONFIG_SETFILES is not set
>>>    # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set
>>> +# CONFIG_RESTORECON is not set
>>>    # CONFIG_SETSEBOOL is not set
>>> -# CONFIG_SESTATUS is not set
>>>    
>>>    #
>>>    # Shells
>>>    #
>>> +CONFIG_SH_IS_ASH=y
>>> +# CONFIG_SH_IS_HUSH is not set
>>> +# CONFIG_SH_IS_NONE is not set
>>> +# CONFIG_BASH_IS_ASH is not set
>>> +# CONFIG_BASH_IS_HUSH is not set
>>> +CONFIG_BASH_IS_NONE=y
>>>    CONFIG_ASH=y
>>> +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
>>> +CONFIG_ASH_INTERNAL_GLOB=y
>>>    CONFIG_ASH_BASH_COMPAT=y
>>> -# CONFIG_ASH_IDLE_TIMEOUT is not set
>>>    CONFIG_ASH_JOB_CONTROL=y
>>>    CONFIG_ASH_ALIAS=y
>>> -CONFIG_ASH_GETOPTS=y
>>> -CONFIG_ASH_BUILTIN_ECHO=y
>>> -CONFIG_ASH_BUILTIN_PRINTF=y
>>> -CONFIG_ASH_BUILTIN_TEST=y
>>> -CONFIG_ASH_HELP=y
>>> -CONFIG_ASH_CMDCMD=y
>>> -# CONFIG_ASH_MAIL is not set
>>> -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
>>>    # CONFIG_ASH_RANDOM_SUPPORT is not set
>>>    CONFIG_ASH_EXPAND_PRMT=y
>>> +# CONFIG_ASH_IDLE_TIMEOUT is not set
>>> +# CONFIG_ASH_MAIL is not set
>>> +CONFIG_ASH_ECHO=y
>>> +CONFIG_ASH_PRINTF=y
>>> +CONFIG_ASH_TEST=y
>>> +CONFIG_ASH_HELP=y
>>> +CONFIG_ASH_GETOPTS=y
>>> +CONFIG_ASH_CMDCMD=y
>>>    # CONFIG_CTTYHACK is not set
>>>    # CONFIG_HUSH is not set
>>>    # CONFIG_HUSH_BASH_COMPAT is not set
>>>    # CONFIG_HUSH_BRACE_EXPANSION is not set
>>> -# CONFIG_HUSH_HELP is not set
>>>    # CONFIG_HUSH_INTERACTIVE is not set
>>>    # CONFIG_HUSH_SAVEHISTORY is not set
>>>    # CONFIG_HUSH_JOB is not set
>>> @@ -1034,17 +1101,30 @@ CONFIG_ASH_EXPAND_PRMT=y
>>>    # CONFIG_HUSH_FUNCTIONS is not set
>>>    # CONFIG_HUSH_LOCAL is not set
>>>    # CONFIG_HUSH_RANDOM_SUPPORT is not set
>>> -# CONFIG_HUSH_EXPORT_N is not set
>>>    # CONFIG_HUSH_MODE_X is not set
>>> +# CONFIG_HUSH_ECHO is not set
>>> +# CONFIG_HUSH_PRINTF is not set
>>> +# CONFIG_HUSH_TEST is not set
>>> +# CONFIG_HUSH_HELP is not set
>>> +# CONFIG_HUSH_EXPORT is not set
>>> +# CONFIG_HUSH_EXPORT_N is not set
>>> +# CONFIG_HUSH_KILL is not set
>>> +# CONFIG_HUSH_WAIT is not set
>>> +# CONFIG_HUSH_TRAP is not set
>>> +# CONFIG_HUSH_TYPE is not set
>>> +# CONFIG_HUSH_READ is not set
>>> +# CONFIG_HUSH_SET is not set
>>> +# CONFIG_HUSH_UNSET is not set
>>> +# CONFIG_HUSH_ULIMIT is not set
>>> +# CONFIG_HUSH_UMASK is not set
>>> +# CONFIG_HUSH_MEMLEAK is not set
>>>    # CONFIG_MSH is not set
>>> -CONFIG_FEATURE_SH_IS_ASH=y
>>> -# CONFIG_FEATURE_SH_IS_HUSH is not set
>>> -# CONFIG_FEATURE_SH_IS_NONE is not set
>>> -# CONFIG_FEATURE_BASH_IS_ASH is not set
>>> -# CONFIG_FEATURE_BASH_IS_HUSH is not set
>>> -CONFIG_FEATURE_BASH_IS_NONE=y
>>> -CONFIG_SH_MATH_SUPPORT=y
>>> -# CONFIG_SH_MATH_SUPPORT_64 is not set
>>> +
>>> +#
>>> +# Options common to all shells
>>> +#
>>> +CONFIG_FEATURE_SH_MATH=y
>>> +# CONFIG_FEATURE_SH_MATH_64 is not set
>>>    CONFIG_FEATURE_SH_EXTRA_QUIET=y
>>>    # CONFIG_FEATURE_SH_STANDALONE is not set
>>>    # CONFIG_FEATURE_SH_NOFORK is not set
>>> @@ -1053,19 +1133,17 @@ CONFIG_FEATURE_SH_HISTFILESIZE=y
>>>    #
>>>    # System Logging Utilities
>>>    #
>>> +CONFIG_KLOGD=y
>>> +CONFIG_FEATURE_KLOGD_KLOGCTL=y
>>> +CONFIG_LOGGER=y
>>> +# CONFIG_LOGREAD is not set
>>> +# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
>>>    # CONFIG_SYSLOGD is not set
>>>    # CONFIG_FEATURE_ROTATE_LOGFILE is not set
>>>    # CONFIG_FEATURE_REMOTE_LOG is not set
>>>    # CONFIG_FEATURE_SYSLOGD_DUP is not set
>>>    # CONFIG_FEATURE_SYSLOGD_CFG is not set
>>> +CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0
>>>    # CONFIG_FEATURE_IPC_SYSLOG is not set
>>> -# CONFIG_LOGREAD is not set
>>> -# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
>>> +CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
>>>    # CONFIG_FEATURE_KMSG_SYSLOG is not set
>>> -CONFIG_KLOGD=y
>>> -
>>> -#
>>> -# klogd should not be used together with syslog to kernel printk buffer
>>> -#
>>> -CONFIG_FEATURE_KLOGD_KLOGCTL=y
>>> -CONFIG_LOGGER=y
>>> diff --git a/meta/recipes-core/busybox/busybox/ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch b/meta/recipes-core/busybox/busybox/ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch
>>> deleted file mode 100644
>>> index 41c5656..0000000
>>> --- a/meta/recipes-core/busybox/busybox/ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch
>>> +++ /dev/null
>>> @@ -1,90 +0,0 @@
>>> -From 4ab372d49a6e82b0bf097dedb96d26330c5f2d5f Mon Sep 17 00:00:00 2001
>>> -From: Szabolcs Nagy <nsz at port70.net>
>>> -Date: Sun, 24 Apr 2016 17:39:02 +0200
>>> -Subject: [PATCH] ip: fix problem on mips64 n64 big endian musl systems
>>> -
>>> -Use designated initializers for struct msghdr.
>>> -The struct layout is non-portable and musl libc does not match what busybox expects.
>>> -
>>> -Signed-off-by: Szabolcs Nagy <nsz at port70.net>
>>> -Tested-by: Waldemar Brodkorb <wbx at openadk.org>
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> -
>>> -Upstream-Status: Backport
>>> -
>>> -https://git.busybox.net/busybox/commit/?id=4ab372d49a6e82b0bf097dedb96d26330c5f2d5f
>>> -
>>> -Signed-off-by: Armin Kuster <akuster at mvista.com>
>>> -
>>> ----
>>> - networking/libiproute/libnetlink.c | 37 ++++++++++++++++++++++++-------------
>>> - 1 file changed, 24 insertions(+), 13 deletions(-)
>>> -
>>> -diff --git a/networking/libiproute/libnetlink.c b/networking/libiproute/libnetlink.c
>>> -index c7533a4..cbb5daf 100644
>>> ---- a/networking/libiproute/libnetlink.c
>>> -+++ b/networking/libiproute/libnetlink.c
>>> -@@ -71,11 +71,15 @@ int FAST_FUNC rtnl_dump_request(struct rtnl_handle *rth, int type, void *req, in
>>> - 	struct nlmsghdr nlh;
>>> - 	struct sockaddr_nl nladdr;
>>> - 	struct iovec iov[2] = { { &nlh, sizeof(nlh) }, { req, len } };
>>> -+	/* Use designated initializers, struct layout is non-portable */
>>> - 	struct msghdr msg = {
>>> --		(void*)&nladdr, sizeof(nladdr),
>>> --		iov,  2,
>>> --		NULL, 0,
>>> --		0
>>> -+		.msg_name = (void*)&nladdr,
>>> -+		.msg_namelen = sizeof(nladdr),
>>> -+		.msg_iov = iov,
>>> -+		.msg_iovlen = 2,
>>> -+		.msg_control = NULL,
>>> -+		.msg_controllen = 0,
>>> -+		.msg_flags = 0
>>> - 	};
>>> -
>>> - 	memset(&nladdr, 0, sizeof(nladdr));
>>> -@@ -104,12 +108,15 @@ static int rtnl_dump_filter(struct rtnl_handle *rth,
>>> - 	while (1) {
>>> - 		int status;
>>> - 		struct nlmsghdr *h;
>>> --
>>> -+		/* Use designated initializers, struct layout is non-portable */
>>> - 		struct msghdr msg = {
>>> --			(void*)&nladdr, sizeof(nladdr),
>>> --			&iov, 1,
>>> --			NULL, 0,
>>> --			0
>>> -+			.msg_name = (void*)&nladdr,
>>> -+			.msg_namelen = sizeof(nladdr),
>>> -+			.msg_iov = &iov,
>>> -+			.msg_iovlen = 1,
>>> -+			.msg_control = NULL,
>>> -+			.msg_controllen = 0,
>>> -+			.msg_flags = 0
>>> - 		};
>>> -
>>> - 		status = recvmsg(rth->fd, &msg, 0);
>>> -@@ -211,11 +218,15 @@ int FAST_FUNC rtnl_talk(struct rtnl_handle *rtnl, struct nlmsghdr *n,
>>> - 	struct sockaddr_nl nladdr;
>>> - 	struct iovec iov = { (void*)n, n->nlmsg_len };
>>> - 	char   *buf = xmalloc(8*1024); /* avoid big stack buffer */
>>> -+	/* Use designated initializers, struct layout is non-portable */
>>> - 	struct msghdr msg = {
>>> --		(void*)&nladdr, sizeof(nladdr),
>>> --		&iov, 1,
>>> --		NULL, 0,
>>> --		0
>>> -+		.msg_name = (void*)&nladdr,
>>> -+		.msg_namelen = sizeof(nladdr),
>>> -+		.msg_iov = &iov,
>>> -+		.msg_iovlen = 1,
>>> -+		.msg_control = NULL,
>>> -+		.msg_controllen = 0,
>>> -+		.msg_flags = 0
>>> - 	};
>>> -
>>> - 	memset(&nladdr, 0, sizeof(nladdr));
>>> ---
>>> -2.3.5
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox/makefile-fix-backport.patch b/meta/recipes-core/busybox/busybox/makefile-fix-backport.patch
>>> deleted file mode 100644
>>> index 2e9842e..0000000
>>> --- a/meta/recipes-core/busybox/busybox/makefile-fix-backport.patch
>>> +++ /dev/null
>>> @@ -1,40 +0,0 @@
>>> -From 9e5820a86277818c2f83c11c2aa76d7f0a38283e Mon Sep 17 00:00:00 2001
>>> -From: Denys Vlasenko <vda.linux at googlemail.com>
>>> -Date: Sun, 14 Aug 2016 02:54:27 +0200
>>> -Subject: build system: fix include/NUM_APPLETS.h generation
>>> -
>>> -TBH, it's more like "work around my bad makefile-fu" than "fix"...
>>> -
>>> -Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
>>> ----
>>> - applets/Kbuild.src | 7 ++-----
>>> - 1 file changed, 2 insertions(+), 5 deletions(-)
>>> -
>>> -Upstream-Status: Backport
>>> -
>>> -diff --git a/applets/Kbuild.src b/applets/Kbuild.src
>>> -index b612399..5cc1827 100644
>>> ---- a/applets/Kbuild.src
>>> -+++ b/applets/Kbuild.src
>>> -@@ -29,7 +29,7 @@ applets/applets.o: include/usage_compressed.h include/applet_tables.h
>>> -
>>> - applets/applet_tables: .config include/applets.h
>>> - applets/usage:         .config include/applets.h
>>> --applets/usage_pod:     .config include/applet_tables.h include/applets.h
>>> -+applets/usage_pod:     .config include/applets.h include/applet_tables.h include/NUM_APPLETS.h
>>> -
>>> - quiet_cmd_gen_usage_compressed = GEN     include/usage_compressed.h
>>> -       cmd_gen_usage_compressed = $(srctree_slash)applets/usage_compressed include/usage_compressed.h applets
>>> -@@ -40,8 +40,5 @@ include/usage_compressed.h: applets/usage $(srctree_slash)applets/usage_compress
>>> - quiet_cmd_gen_applet_tables = GEN     include/applet_tables.h
>>> -       cmd_gen_applet_tables = applets/applet_tables include/applet_tables.h include/NUM_APPLETS.h
>>> -
>>> --include/applet_tables.h: applets/applet_tables
>>> --	$(call cmd,gen_applet_tables)
>>> --
>>> --include/NUM_APPLETS.h: applets/applet_tables
>>> -+include/applet_tables.h include/NUM_APPLETS.h: applets/applet_tables
>>> - 	$(call cmd,gen_applet_tables)
>>> ---
>>> -cgit v0.12
>>> -
>>> diff --git a/meta/recipes-core/busybox/busybox_1.24.1.bb b/meta/recipes-core/busybox/busybox_1.27.2.bb
>>> similarity index 57%
>>> rename from meta/recipes-core/busybox/busybox_1.24.1.bb
>>> rename to meta/recipes-core/busybox/busybox_1.27.2.bb
>>> index 1c85808..47b4f48 100644
>>> --- a/meta/recipes-core/busybox/busybox_1.24.1.bb
>>> +++ b/meta/recipes-core/busybox/busybox_1.27.2.bb
>>> @@ -29,10 +29,6 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
>>>               file://recognize_connmand.patch \
>>>               file://busybox-cross-menuconfig.patch \
>>>               file://0001-Use-CC-when-linking-instead-of-LD-and-use-CFLAGS-and.patch \
>>> -           file://busybox-1.24.1-unzip.patch \
>>> -           file://busybox-1.24.1-unzip-regression.patch \
>>> -           file://busybox-1.24.1-truncate-open-mode.patch \
>>> -           file://0001-flock-update-the-behaviour-of-c-parameter-to-match-u.patch \
>>>               file://mount-via-label.cfg \
>>>               file://sha1sum.cfg \
>>>               file://sha256sum.cfg \
>>> @@ -45,24 +41,9 @@ SRC_URI = "http://www.busybox.net/downloads/busybox-${PV}.tar.bz2;name=tarball \
>>>               file://rcS \
>>>               file://rcK \
>>>               file://runlevel \
>>> -           file://CVE-2016-2148.patch \
>>> -           file://CVE-2016-2147.patch \
>>> -           file://CVE-2016-2147_2.patch \
>>> -           file://CVE-2016-6301.patch \
>>> -           file://ip_fix_problem_on_mips64_n64_big_endian_musl_systems.patch \
>>> -           file://makefile-fix-backport.patch \
>>> -           file://0001-sed-fix-sed-n-flushes-pattern-space-terminates-early.patch \
>>> -           file://busybox-kbuild-race-fix-commit-d8e61bb.patch \
>>> -           file://commit-applet_tables-fix-commit-0dddbc1.patch \
>>>               file://makefile-libbb-race.patch \
>>> -           file://0001-libiproute-handle-table-ids-larger-than-255.patch \
>>> -           file://ifupdown-pass-interface-device-name-for-ipv6-route-c.patch \
>>> -           file://BUG9071_buffer_overflow_arp.patch \
>>> -           file://busybox-tar-add-IF_FEATURE_-checks.patch \
>>> -           file://0001-iproute-support-scope-.-Closes-8561.patch \
>>> -           file://0001-ip-fix-an-improper-optimization-req.r.rtm_scope-may-.patch \
>>>    "
>>>    SRC_URI_append_libc-musl = " file://musl.cfg "
>>>    
>>> -SRC_URI[tarball.md5sum] = "be98a40cadf84ce2d6b05fa41a275c6a"
>>> -SRC_URI[tarball.sha256sum] = "37d03132cc078937360b392170b7a1d0e5b322eee9f57c0b82292a8b1f0afe3d"
>>> +SRC_URI[tarball.md5sum] = "476186f4bab81781dab2369bfd42734e"
>>> +SRC_URI[tarball.sha256sum] = "9d4be516b61e6480f156b11eb42577a13529f75d3383850bb75c50c285de63df"
>>




More information about the Openembedded-core mailing list