diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2014-10-03 14:07:07 +0800 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2020-03-28 21:42:54 +0000 |
commit | e49a1160b58933c257c27603aa3d020daf8e0943 (patch) | |
tree | 16b6acf2c54d1a03c4306859b7383a8183738d80 | |
parent | 9cd6cb0f37d13b7b2152560c07f4d168d1c561e1 (diff) | |
download | klibc-e49a1160b58933c257c27603aa3d020daf8e0943.tar.gz |
[klibc] dash: [EVAL] Do not clobber exitstatus in evalcommand
[ dash commit 0d1fb088a4a16569260de4266d4bd359491c6bcd ]
All originators of EXERROR have been setting the exitstatus for
a while now. So it is no longer appropriate to set it explicitly
in evalcommand.
In fact doing so may cause the original exitstatus to be lost.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r-- | usr/dash/eval.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/usr/dash/eval.c b/usr/dash/eval.c index b3e971bfbd6ec..3e08e8252ef9b 100644 --- a/usr/dash/eval.c +++ b/usr/dash/eval.c @@ -853,12 +853,9 @@ bail: listsetvar(varlist.list, VEXPORT); } if (evalbltin(cmdentry.u.cmd, argc, argv, flags)) { - if (exception == EXERROR) { - exitstatus = 2; - if (spclbltin <= 0) { - FORCEINTON; - break; - } + if (exception == EXERROR && spclbltin <= 0) { + FORCEINTON; + break; } raise: longjmp(handler->loc, 1); |