]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
Fix "Script started" buffering race
authorStanislav Brabec <sbrabec@suse.cz>
Fri, 6 Feb 2015 18:59:14 +0000 (19:59 +0100)
committerKarel Zak <kzak@redhat.com>
Tue, 10 Feb 2015 10:18:51 +0000 (11:18 +0100)
script -c "echo Hallo World" </dev/null >script.log ; cat script.log

Before:
Hallo World
Script started, file is typescript
Script started, file is typescript
Script done, file is typescript

After:
Script started, file is typescript
Hallo World
Script done, file is typescript

term-utils/script.c

index 548334cbc23a25bbff5729151bcd559123eeedc0..02ba5965db6b1d74a2cae82c60ce8ee09cbf30c9 100644 (file)
@@ -269,6 +269,7 @@ main(int argc, char **argv) {
        sigprocmask(SIG_SETMASK, NULL, &block_mask);
        sigaddset(&block_mask, SIGCHLD);
 
+       fflush(stdout);
        sigprocmask(SIG_SETMASK, &block_mask, &unblock_mask);
        child = fork();
        sigprocmask(SIG_SETMASK, &unblock_mask, NULL);