From: Nicolas Thill Date: Tue, 29 Sep 2009 03:43:43 +0000 (+0000) Subject: [packages] ddns-scripts: fix escaping of option values (closes: #5327) X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=commitdiff_plain;h=7bfd5b5504a77528b04f1951fa3d28e76d4a75ff [packages] ddns-scripts: fix escaping of option values (closes: #5327) SVN-Revision: 17798 --- diff --git a/net/ddns-scripts/Makefile b/net/ddns-scripts/Makefile index c7fc6d9fff..ff3bce2525 100644 --- a/net/ddns-scripts/Makefile +++ b/net/ddns-scripts/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ddns-scripts PKG_VERSION:=1.0.0 -PKG_RELEASE:=1.1 +PKG_RELEASE:=1.2 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) diff --git a/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_updater.sh b/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_updater.sh index 62d4886971..ed0396da9c 100755 --- a/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_updater.sh +++ b/net/ddns-scripts/files/usr/lib/ddns/dynamic_dns_updater.sh @@ -250,7 +250,8 @@ do do replace_name=$(echo "\[$option_var\]" | tr 'a-z' 'A-Z') replace_value=$(eval echo "\$$option_var") - final_url=$(echo $final_url | sed s/"$replace_name"/"$replace_value"/g ) + replace_value=$(echo $replace_value | sed -f /usr/lib/ddns/url_escape.sed) + final_url=$(echo $final_url | sed s^"$replace_name"^"$replace_value"^g ) done final_url=$(echo $final_url | sed s/"\[IP\]"/"$current_ip"/g ) diff --git a/net/ddns-scripts/files/usr/lib/ddns/url_escape.sed b/net/ddns-scripts/files/usr/lib/ddns/url_escape.sed new file mode 100644 index 0000000000..eb7011beb2 --- /dev/null +++ b/net/ddns-scripts/files/usr/lib/ddns/url_escape.sed @@ -0,0 +1,23 @@ +# sed url escaping +s: :%20:g +s:<:%3C:g +s:>:%3E:g +s:#:%23:g +s:%:%25:g +s:{:%7B:g +s:}:%7D:g +s:|:%7C:g +s:\\:%5C:g +s:\^:%5E:g +s:~:%7E:g +s:\[:%5B:g +s:\]:%5D:g +s:`:%60:g +s:;:%3B:g +s:/:%2F:g +s:?:%3F:g +s^:^%3A^g +s:@:%40:g +s:=:%3D:g +s:&:%26:g +s:\$:%24:g