瀏覽代碼

busybox: nslookup_lede: fix compatibility with v1.25

The ":*" optstring syntax was only recently introduced with BusyBox v1.26,
older versions need a corresponding hint in the "opt_complementary" variable
to denote flag values that should be stored as llist entries.

Add the required opt_complementary entry to fix random SIGBUS, SIGILL or
SIGSEGV related crashes on BusyBox 1.25.x when attempting to use the "-q"
flag of the "nslookup_lede" applet.

Ref: https://forum.lede-project.org/t/nslookup-ipv6-in-lede-17-01-1

Signed-off-by: Jo-Philipp Wich <[email protected]>
Jo-Philipp Wich 8 年之前
父節點
當前提交
f1e3285461
共有 2 個文件被更改,包括 7 次插入6 次删除
  1. 1 1
      package/utils/busybox/Makefile
  2. 6 5
      package/utils/busybox/patches/230-add_nslookup_lede.patch

+ 1 - 1
package/utils/busybox/Makefile

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=busybox
 PKG_NAME:=busybox
 PKG_VERSION:=1.26.2
 PKG_VERSION:=1.26.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_FLAGS:=essential
 PKG_FLAGS:=essential
 
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2

+ 6 - 5
package/utils/busybox/patches/230-add_nslookup_lede.patch

@@ -1,4 +1,4 @@
-From 2285cd400a10b1bde5472fe1cec3311300ee943c Mon Sep 17 00:00:00 2001
+From 1188f159e0b0a9c07bed835c7313bedf5322a9e3 Mon Sep 17 00:00:00 2001
 From: Jo-Philipp Wich <[email protected]>
 From: Jo-Philipp Wich <[email protected]>
 Date: Tue, 14 Mar 2017 22:21:34 +0100
 Date: Tue, 14 Mar 2017 22:21:34 +0100
 Subject: [PATCH] networking: add LEDE nslookup applet
 Subject: [PATCH] networking: add LEDE nslookup applet
@@ -12,16 +12,16 @@ and the libresolv primitives to parse received DNS responses.
 
 
 Signed-off-by: Jo-Philipp Wich <[email protected]>
 Signed-off-by: Jo-Philipp Wich <[email protected]>
 ---
 ---
- networking/nslookup_lede.c | 893 +++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 893 insertions(+)
+ networking/nslookup_lede.c | 894 +++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 894 insertions(+)
  create mode 100644 networking/nslookup_lede.c
  create mode 100644 networking/nslookup_lede.c
 
 
 diff --git a/networking/nslookup_lede.c b/networking/nslookup_lede.c
 diff --git a/networking/nslookup_lede.c b/networking/nslookup_lede.c
 new file mode 100644
 new file mode 100644
-index 000000000..6f1f86502
+index 000000000..f3e42d3bb
 --- /dev/null
 --- /dev/null
 +++ b/networking/nslookup_lede.c
 +++ b/networking/nslookup_lede.c
-@@ -0,0 +1,893 @@
+@@ -0,0 +1,894 @@
 +/*
 +/*
 + * nslookup_lede - musl compatible replacement for busybox nslookup
 + * nslookup_lede - musl compatible replacement for busybox nslookup
 + *
 + *
@@ -760,6 +760,7 @@ index 000000000..6f1f86502
 +	applet_long_options = nslookup_longopts;
 +	applet_long_options = nslookup_longopts;
 +#endif
 +#endif
 +
 +
++	opt_complementary = "q::";
 +	opts = getopt32(argv, "+q:*p:+r:+t:+s",
 +	opts = getopt32(argv, "+q:*p:+r:+t:+s",
 +	                &type_strings, &default_port,
 +	                &type_strings, &default_port,
 +	                &default_retry, &default_timeout);
 +	                &default_retry, &default_timeout);