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 <adrien+dev@schischi.me>

SVN-Revision: 46919
This commit is contained in:
John Crispin 2015-09-14 20:09:06 +00:00
parent 2efdc7c896
commit 4ef319fad2

View File

@ -184,14 +184,14 @@ get_image() { # <source> [ <command> ]
*) cmd="cat";; *) cmd="cat";;
esac esac
if [ -z "$conc" ]; then 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 case "$magic" in
1f8b) conc="zcat";; 1f8b) conc="zcat";;
425a) conc="bzcat";; 425a) conc="bzcat";;
esac esac
fi fi
eval "$cmd $from 2>/dev/null ${conc:+| $conc}" eval "$cmd \"$from\" 2>/dev/null ${conc:+| $conc}"
} }
get_magic_word() { get_magic_word() {