[U-Boot] [U-Boot, V3] hush: fix some quoted variable expansion issues

Tom Rini trini at ti.com
Fri Mar 7 23:27:52 CET 2014


On Sat, Mar 01, 2014 at 10:16:10PM -0700, Stephen Warren wrote:

> The following shell command fails:
> 
> if test -z "$x"; then echo "zero"; else echo "non-zero"; fi
> 
> (assuming $x does not exist, it prints "non-zero" rather than "zero").
> 
> ... since "$x" expands to nothing, and the argument is completely
> dropped, causing too few to be passed to -z, causing cmd_test() to
> error out early.
> 
> This is because when variable expansions are processed by make_string(),
> the expanded results are concatenated back into a new string. However,
> no quoting is applied when doing so, so any empty variables simply don't
> generate any parameter when the combined string is parsed again.
> 
> Fix this by explicitly replacing quoting any argument that was originally
> quoted when re-generating a string from the already-parsed argument list.
> 
> This also fixes loss of whitespace in commands such as:
> 
> setenv space " "
> setenv var " 1${space}${space} 2 "
> echo ">>${var}<<"
> 
> Reported-by: Russell King <linux at arm.linux.org.uk>
> Acked-by: Simon Glass <sjg at chromium.org>
> Signed-off-by: Stephen Warren <swarren at wwwdotorg.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140307/d454bcbb/attachment.pgp>


More information about the U-Boot mailing list