linux/arch/um/os-Linux
Vegard Nossum 0754fb298f uml: flush stdout before forking
I was seeing some really weird behaviour where piping UML's output
somewhere would cause output to get duplicated:

  $ ./vmlinux | head -n 40
  Checking that ptrace can change system call numbers...Core dump limits :
          soft - 0
          hard - NONE
  OK
  Checking syscall emulation patch for ptrace...Core dump limits :
          soft - 0
          hard - NONE
  OK
  Checking advanced syscall emulation patch for ptrace...Core dump limits :
          soft - 0
          hard - NONE
  OK
  Core dump limits :
          soft - 0
          hard - NONE

This is because these tests do a fork() which duplicates the non-empty
stdout buffer, then glibc flushes the duplicated buffer as each child
exits.

A simple workaround is to flush before forking.

Cc: stable@vger.kernel.org
Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
2016-01-10 21:49:47 +01:00
..
drivers Merge branch 'for-linus-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml 2015-06-28 13:55:08 -07:00
skas um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
aio.c um: Cleanup SIGTERM handling 2013-09-07 10:56:58 +02:00
elf_aux.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
execvp.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
file.c um: Include sys/types.h for makedev(), major(), minor() 2015-06-25 22:42:21 +02:00
helper.c um: Fix waitpid() usage in helper code 2015-10-19 22:53:37 +02:00
irq.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
main.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
Makefile um: use the right ifdef around exports in user_syms.c 2012-03-25 00:29:55 +01:00
mem.c uml: Simplify tempdir logic. 2014-04-20 23:10:44 +02:00
process.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
registers.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
sigio.c um: Cleanup SIGTERM handling 2013-09-07 10:56:58 +02:00
signal.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
start_up.c uml: flush stdout before forking 2016-01-10 21:49:47 +01:00
time.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
tty.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
umid.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
user_syms.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
util.c um: Cleanup SIGTERM handling 2013-09-07 10:56:58 +02:00