diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2018-12-14 13:52:02 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2019-02-25 12:52:11 +0800 |
commit | 62cf6955f8abe875752d7163f6f3adbc7e49ebae (patch) | |
tree | 9e00ec01755501a903f7623b1f1ffd09646298dc /src/error.h | |
parent | eval: avoid leaking memory associated with redirections (diff) | |
download | dash-62cf6955f8abe875752d7163f6f3adbc7e49ebae.tar.gz dash-62cf6955f8abe875752d7163f6f3adbc7e49ebae.zip |
eval: Only restore exit status on exit/return
We unconditionally restore the saved status in exitreset, which is incorrect as we only want to do it for exitcmd and returncmd. This patch fixes the problem by introducing EXEND. Reported-by: Martijn Dekker <martijn@inlv.org> Fixes: da30b4b78769 ("[BUILTIN] Exit without arguments in a trap...") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
-rw-r--r-- | src/error.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/error.h b/src/error.h index 9630b56..94e30a2 100644 --- a/src/error.h +++ b/src/error.h @@ -66,7 +66,8 @@ extern int exception; /* exceptions */ #define EXINT 0 /* SIGINT received */ #define EXERROR 1 /* a generic error */ -#define EXEXIT 4 /* exit the shell */ +#define EXEND 3 /* exit the shell */ +#define EXEXIT 4 /* exit the shell via exitcmd */ /* |