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 <dedeckeh@gmail.com>
lede-17.01
Hans Dedecker 2016-10-06 09:13:40 +02:00 committed by Jo-Philipp Wich
parent 7694c5cf0e
commit 34528c4807
2 changed files with 8 additions and 4 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=ds-lite PKG_NAME:=ds-lite
PKG_VERSION:=7 PKG_VERSION:=7
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_LICENSE:=GPL-2.0 PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk

View File

@ -26,16 +26,20 @@ proto_dslite_setup() {
( proto_add_host_dependency "$cfg" "::" "$tunlink" ) ( proto_add_host_dependency "$cfg" "::" "$tunlink" )
remoteip6=$(resolveip -6 $peeraddr) remoteip6=$(resolveip -6 "$peeraddr")
if [ -z "$remoteip6" ]; then if [ -z "$remoteip6" ]; then
sleep 3 sleep 3
remoteip6=$(resolveip -6 $peeraddr) remoteip6=$(resolveip -6 "$peeraddr")
if [ -z "$remoteip6" ]; then if [ -z "$remoteip6" ]; then
proto_notify_error "$cfg" "AFTR_DNS_FAIL" proto_notify_error "$cfg" "AFTR_DNS_FAIL"
return return
fi fi
fi fi
peeraddr="${remoteip6%% *}"
for ip6 in $remoteip6; do
peeraddr=$ip6
break
done
[ -z "$ip6addr" ] && { [ -z "$ip6addr" ] && {
local wanif="$tunlink" local wanif="$tunlink"