diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2014-10-02 19:49:48 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2014-10-02 19:49:48 +0800 |
commit | d28c13e7119a605ef152a4310e9415dc7ae9b8f3 (patch) | |
tree | cddcf4e35da0161ac0c98f34795c0cbddf1b436c /src/mksyntax.c | |
parent | [EVAL] Fix use-after-free in dotrap/evalstring (diff) | |
download | dash-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 'src/mksyntax.c')
0 files changed, 0 insertions, 0 deletions