[PATCH] [RFC] cmd: exit: Fix return value

Tom Rini trini at konsulko.com
Tue Apr 13 16:30:04 CEST 2021


On Tue, Apr 06, 2021 at 02:00:24PM +0200, Marek Vasut wrote:

> In case exit is called in a script without parameter, the command
> returns -2 ; in case exit is called with a numerical parameter,
> the command returns -2 and lower. This leads to the following problem:
> => setenv foo 'echo bar ; exit 1' ; run foo ; echo $?
> bar
> 0
> => setenv foo 'echo bar ; exit 0' ; run foo ; echo $?
> bar
> 0
> => setenv foo 'echo bar ; exit -2' ; run foo ; echo $?
> bar
> 0
> That is, no matter what the 'exit' command argument is, the return
> value is always 0 and so it is not possible to use script return
> value in subsequent tests.
> 
> Fix this and simplify the exit command such that if exit is called with
> no argument, the command returns 0, just like 'true' in cmd/test.c. In
> case the command is called with any argument that is positive integer,
> the argument is set as return value.
> => setenv foo 'echo bar ; exit 1' ; run foo ; echo $?
> bar
> 1
> => setenv foo 'echo bar ; exit 0' ; run foo ; echo $?
> bar
> 0
> => setenv foo 'echo bar ; exit -2' ; run foo ; echo $?
> bar
> 0
> 
> Note that this does change ABI established in 2004 , although it is
> unclear whether that ABI was originally OK or not.
> 
> Fixes: c26e454dfc6
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Pantelis Antoniou <pantelis.antoniou at konsulko.com>
> Cc: Tom Rini <trini at konsulko.com>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20210413/1a52df89/attachment.sig>


More information about the U-Boot mailing list