From 8c55dc79a79d6a16c364e6b1f849bf426f21fcbb Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Fri, 30 Oct 2015 19:06:47 +0000 Subject: ash: fix EXEXEC status clobbering evalcommand always clobbers the exit status in case of an EXEXEC which means that exec always fails with exit status 2 regardless of what it actually returns. This patch adds the missing check for EXEXEC so that the correct exit status is preserved. It causes the test ash-misc/exec.tests to succeed. Based on commit 7f68426 in dash git, by Herbert Xu. Signed-off-by: Ron Yorston Signed-off-by: Denys Vlasenko --- shell/ash.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'shell') diff --git a/shell/ash.c b/shell/ash.c index 9a8bab5ab..c333b235b 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -9432,7 +9432,7 @@ evalcommand(union node *cmd, int flags) if (evalbltin(cmdentry.u.cmd, argc, argv)) { int exit_status; int i = exception_type; - if (i == EXEXIT) + if (i == EXEXIT || i == EXEXEC) goto raise; exit_status = 2; if (i == EXINT) -- cgit v1.2.3