From 516d6fdcf4ae2feb25c690f5315d3c7b43087da8 Mon Sep 17 00:00:00 2001 From: Herbert Xu Date: Sat, 22 Sep 2007 20:50:21 +0800 Subject: [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. --- ChangeLog | 4 ++++ src/trap.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 295fa66..ba974ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2007-09-22 Herbert Xu + + * Move flushall to the point just before _exit. + 2007-09-21 Denis Vlasenko * 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 */ } -- cgit 1.4.1