From: Hans Dedecker Date: Thu, 6 Oct 2016 07:13:40 +0000 (+0200) Subject: dslite: Quote resolveip hostname argument X-Git-Tag: v17.01.0-rc1~1240 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=34528c4807de017c359d87d0cd3c415cc0ae1893;p=openwrt%2Fopenwrt.git dslite: Quote resolveip hostname argument Quote resolveip hostname argument to avoid bad shell injections. While at it fix pattern match logic in case multiple IPv6 addresses are returned for a hostname as they're seperated by newline by resolveip and not a white space Signed-off-by: Hans Dedecker --- diff --git a/package/network/ipv6/ds-lite/Makefile b/package/network/ipv6/ds-lite/Makefile index 919ac7e74d..58e7156b95 100644 --- a/package/network/ipv6/ds-lite/Makefile +++ b/package/network/ipv6/ds-lite/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ds-lite PKG_VERSION:=7 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_LICENSE:=GPL-2.0 include $(INCLUDE_DIR)/package.mk diff --git a/package/network/ipv6/ds-lite/files/dslite.sh b/package/network/ipv6/ds-lite/files/dslite.sh index a7e0a10542..2485a424dc 100755 --- a/package/network/ipv6/ds-lite/files/dslite.sh +++ b/package/network/ipv6/ds-lite/files/dslite.sh @@ -26,16 +26,20 @@ proto_dslite_setup() { ( proto_add_host_dependency "$cfg" "::" "$tunlink" ) - remoteip6=$(resolveip -6 $peeraddr) + remoteip6=$(resolveip -6 "$peeraddr") if [ -z "$remoteip6" ]; then sleep 3 - remoteip6=$(resolveip -6 $peeraddr) + remoteip6=$(resolveip -6 "$peeraddr") if [ -z "$remoteip6" ]; then proto_notify_error "$cfg" "AFTR_DNS_FAIL" return fi fi - peeraddr="${remoteip6%% *}" + + for ip6 in $remoteip6; do + peeraddr=$ip6 + break + done [ -z "$ip6addr" ] && { local wanif="$tunlink"