busybox/shell/ash_test
Denys Vlasenko f415e21a7d ash: eval: Do not cache value of eflag in evaltree
Upsteam commit:

    Date: Mon, 17 May 2021 15:19:23 +0800
    eval: Do not cache value of eflag in evaltree

    Patrick Brünn <P.Bruenn@beckhoff.com> wrote:
    > Since we are migrating to Debian bullseye, we discovered a new behavior
    > with our scripts, which look like this:
    >>cleanup() {
    >>        set +e
    >>        rmdir ""
    >>}
    >>set -eu
    >>trap 'cleanup' EXIT INT TERM
    >>echo 'Hello world!'
    >
    > With old dash v0.5.10.2 this script would return 0 as we expected it.
    > But since commit 62cf6955f8abe875752d7163f6f3adbc7e49ebae it returns
    > the last exit code of our cleanup function.
    ...
    Thanks for the report.  This is actually a fairly old bug with
    set -e that's just been exposed by the exit status change.  What's
    really happening is that cleanup itself is triggering a set -e
    exit incorrectly because evaltree cached the value of eflag prior
    to the function call.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2021-09-07 02:01:03 +02:00
..
ash-alias
ash-arith ash: parser: Add syntax stack for recursive parsing 2018-04-02 13:15:37 +02:00
ash-getopts hush: fix "getopts" builtin to not be upset by other builtins calling getopt() 2017-08-29 13:38:30 +02:00
ash-glob ash: expand: Do not quote backslashes in unquoted parameter expansion 2018-08-07 18:58:02 +02:00
ash-heredoc ash: Expand here-documents in the current shell environment 2020-02-22 20:29:36 +01:00
ash-invert
ash-misc ash: eval: Do not cache value of eflag in evaltree 2021-09-07 02:01:03 +02:00
ash-parsing hush: fix bkslash+newline handling and number validation in ${NN} and ${#NN} 2021-06-19 15:45:45 +02:00
ash-psubst shell: update psubst testcases 2021-07-27 04:20:32 +02:00
ash-quoting ash: expand: Ensure result is escaped in cvtnum 2020-02-21 16:30:44 +01:00
ash-read shell: Fix "read -d ''" behavior 2020-07-31 18:42:30 +02:00
ash-redir ash: eval: Fail immediately with redirections errors for simple command 2020-02-20 09:36:51 +01:00
ash-signals hush: output bash-compat killing signal names 2020-10-24 04:26:43 +02:00
ash-standalone ash: fix nofork bug where environment is not properly passed to a command 2017-11-03 14:16:25 +01:00
ash-vars ahell: update testsuite 2021-07-25 22:03:16 +02:00
ash-z_slow hush: improve ${var#...}, ${var:+...} and ${var/.../...} - handle quoting 2018-07-17 14:21:38 +02:00
.gitignore ash_test: ignore generated files 2016-03-22 18:15:24 -04:00
printenv.c do not use `a' quoting style in comments 2017-08-02 14:26:33 +02:00
recho.c whitespace cleanup 2010-10-29 11:46:52 +02:00
run-all ash: add all hush parsing tests to ast tests 2017-07-24 02:49:56 +02:00
zecho.c whitespace cleanup 2010-10-29 11:46:52 +02:00