The commit cdd2a8c360c70d16804ace7cc923a6c6bb7c9ca9 broke script(1) return value. $ script -e -c "echo"; echo $? 1 The reason, as Daniel it reported, was that the script will close stderr twice, once as timing file and atexit() in function close_stdout(). This commit fixes the problem. Reported-by: Daniel Narvaez <dwnarvaez@xxxxxxxxx> Signed-off-by: Sami Kerola <kerolasa@xxxxxx> --- term-utils/script.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/term-utils/script.c b/term-utils/script.c index ccd8873..94a20da 100644 --- a/term-utils/script.c +++ b/term-utils/script.c @@ -159,7 +159,7 @@ main(int argc, char **argv) { sigset_t block_mask, unblock_mask; struct sigaction sa; int ch; - FILE *timingfd = stderr; + FILE *timingfd = NULL; enum { FORCE_OPTION = CHAR_MAX + 1 }; @@ -274,9 +274,11 @@ main(int argc, char **argv) { warn(_("fork failed")); fail(); } - if (child) + if (child) { + if (!timingfd) + timingfd = fdopen(STDERR_FILENO, "w"); dooutput(timingfd); - else + } else doshell(); } else { sa.sa_handler = resize; -- 1.8.0 -- To unsubscribe from this list: send the line "unsubscribe util-linux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html