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>
		
	
		
			
				
	
	
		
			3 lines
		
	
	
		
			11 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			3 lines
		
	
	
		
			11 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Start
 | 
						|
Ok:0
 |