aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2014-10-03 14:07:07 +0800
committerBen Hutchings <ben@decadent.org.uk>2020-03-28 21:42:54 +0000
commite49a1160b58933c257c27603aa3d020daf8e0943 (patch)
tree16b6acf2c54d1a03c4306859b7383a8183738d80
parent9cd6cb0f37d13b7b2152560c07f4d168d1c561e1 (diff)
downloadklibc-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.c9
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);