summary refs log tree commit diff
path: root/src/bltin
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2014-10-02 19:49:48 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2014-10-02 19:49:48 +0800
commitd28c13e7119a605ef152a4310e9415dc7ae9b8f3 (patch)
treecddcf4e35da0161ac0c98f34795c0cbddf1b436c /src/bltin
parent[EVAL] Fix use-after-free in dotrap/evalstring (diff)
downloaddash-d28c13e7119a605ef152a4310e9415dc7ae9b8f3.tar.gz
dash-d28c13e7119a605ef152a4310e9415dc7ae9b8f3.zip
[TRAP] Make sure evalskip is zero before running traps
As it is if dotrap is called with evalskip set to a nonzero value,
it'll try to execute any set traps.  The result is that the first
command in the first set trap will be executed while the rest of
the trap will be silently ignored due to evalskip.  This is highly
counterintuitive, even though both bash and ksh exhibit a similar
behaviour.

This patch fixes it by skipping trap processing if evalskip is set
on entry.  It also adds a dotrap call to the top of evaltree to
ensure that

	while continue; do
		continue;
	done

has a chance of running traps.

Finally the pendingsigs check is moved into dotrap for compactness.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions
an>Run line editing testsJune McEnroe 2022-02-18Implement new line editing "library"June McEnroe 2022-02-18Simplify cursor positioning in inputJune McEnroe 2022-02-18Fix M-f orderingJune McEnroe 2022-02-12Move sandman build to scripts/MakefileJune McEnroe 2022-02-12Use compat_readpassphrase.c on LinuxJune McEnroe 2022-02-12Copy RPP defines from oconfigureJune McEnroe