ash: [EVAL] Check exit for eval NSUBSHELL
Upstream commit:
Date: Tue, 6 Jul 2010 17:50:37 +0800
[PATCH 161/277] [EVAL] Check exit for eval NSUBSHELL
Example:
$ dash -c 'set -e; (false); echo here'
here
With this commit, dash exits 1 before echo.
The bug was reported by Stefan Fritsch through
http://bugs.debian.org/514863
Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This was fixed differently in our tree:
Date: Fri Sep 16 19:04:02 2016 +0000
ash: exit after subshell error when errexit option is set
When "set -e" option is on, shell must exit when any command fails,
including compound commands of the form (compound-list) executed in a
subshell. Bash and dash shells have this behaviour.
Also add a corresponding testcase.
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
@@ -8610,11 +8610,9 @@ evaltree(union node *n, int flags)
|
||||
evalfn = evalloop;
|
||||
goto calleval;
|
||||
case NSUBSHELL:
|
||||
evalfn = evalsubshell;
|
||||
goto checkexit;
|
||||
case NBACKGND:
|
||||
evalfn = evalsubshell;
|
||||
goto calleval;
|
||||
goto checkexit;
|
||||
case NPIPE:
|
||||
evalfn = evalpipe;
|
||||
goto checkexit;
|
||||
|
||||
Reference in New Issue
Block a user