diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2007-09-22 20:50:21 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2007-09-22 21:37:35 +0800 |
commit | 516d6fdcf4ae2feb25c690f5315d3c7b43087da8 (patch) | |
tree | edcd21cfe485feb1cd5edf900c78f66c724e27eb | |
parent | [SHELL] Restore foreground process group on exit (diff) | |
download | dash-516d6fdcf4ae2feb25c690f5315d3c7b43087da8.tar.gz dash-516d6fdcf4ae2feb25c690f5315d3c7b43087da8.zip |
[SHELL] Move flushall to the point just before _exit
We need to flush at the very end in case we've generated any errors before that. The flushall call cannot perform a longjmp so it's safe there.
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/trap.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 295fa66..ba974ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2007-09-22 Herbert Xu <herbert@gondor.apana.org.au> + + * Move flushall to the point just before _exit. + 2007-09-21 Denis Vlasenko <vda.linux@googlemail.com> * Restore foreground process group on exit. diff --git a/src/trap.c b/src/trap.c index c386db7..58cd0cc 100644 --- a/src/trap.c +++ b/src/trap.c @@ -365,7 +365,6 @@ exitshell(void) trap[0] = NULL; evalstring(p, 0); } - flushall(); out: /* * Disable job control so that whoever had the foreground before we @@ -373,6 +372,7 @@ out: */ if (likely(!setjmp(loc.loc))) setjobctl(0); + flushall(); _exit(status); /* NOTREACHED */ } |