diff options
author | Denys Vlasenko | 2020-02-14 17:32:22 +0100 |
---|---|---|
committer | Denys Vlasenko | 2020-02-16 19:14:45 +0100 |
commit | 970470e235fd2a00d4b020378ddccf769ce534ec (patch) | |
tree | f27dc4e837664f7e935eba76bf9491bdd74a7fd2 /shell | |
parent | 4ccddc8fb37b7f585c2d62f6e61ad17295399aff (diff) | |
download | busybox-970470e235fd2a00d4b020378ddccf769ce534ec.zip busybox-970470e235fd2a00d4b020378ddccf769ce534ec.tar.gz |
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>
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/shell/ash.c b/shell/ash.c index 270a338..db7dffc 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -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 */ |