ash: main: Only set savestatus in exitcmd

Upstream commit:

    Date: Sat, 19 May 2018 02:39:38 +0800
    main: Only set savestatus in exitcmd

    Currently exitcmd sets exitstatus and then savestatus if the latter
    was previously set.  In fact, as exitcmd always raises an exception
    and will either end up in the setjmp call in main() or exitshell(),
    where exitstatus is always replaced by savestatus if set, we only
    need to set savestatus.

    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2020-02-14 17:32:22 +01:00
parent 4ccddc8fb3
commit 970470e235

View File

@ -13427,13 +13427,8 @@ exitcmd(int argc UNUSED_PARAM, char **argv)
if (stoppedjobs())
return 0;
if (argv[1]) {
int status = number(argv[1]);
exitstatus = status;
if (savestatus >= 0)
savestatus = status;
}
if (argv[1])
savestatus = number(argv[1]);
raise_exception(EXEXIT);
/* NOTREACHED */