From: John Crispin Date: Mon, 14 Sep 2015 20:09:06 +0000 (+0000) Subject: base-files: sysupgrade: quote source image name X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=4ef319fad23b566a226dc3edcf1f3e50c43032e2;p=openwrt%2Fstaging%2Fnbd.git base-files: sysupgrade: quote source image name get_image() eval a filename without quoting it, resulting in errors with filenames containing characters that need to be escaped. $ sysupgrade -T -f ./cfg\(12\).tar.gz img.bin; echo $? Image check 'platform_check_image' failed. Invalid config file. Please use only .tar.gz files 1 $ mv cfg\(12\).tar.gz cfg_12.tar.gz $ mv img\(1\).bin img.bin sysupgrade -T -f ./cfg_12.tar.gz img.bin; echo $? 0 Enclose the content of $from in double quotes. Signed-off-by: Adrien Schildknecht SVN-Revision: 46919 --- diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh index 189ef69e95..761b4c1795 100644 --- a/package/base-files/files/lib/upgrade/common.sh +++ b/package/base-files/files/lib/upgrade/common.sh @@ -184,14 +184,14 @@ get_image() { # [ ] *) cmd="cat";; esac if [ -z "$conc" ]; then - local magic="$(eval $cmd $from 2>/dev/null | dd bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"')" + local magic="$(eval $cmd \"$from\" 2>/dev/null | dd bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"')" case "$magic" in 1f8b) conc="zcat";; 425a) conc="bzcat";; esac fi - eval "$cmd $from 2>/dev/null ${conc:+| $conc}" + eval "$cmd \"$from\" 2>/dev/null ${conc:+| $conc}" } get_magic_word() {