disallow -daemonize usage of stdio (curses display, -nographic, -serial stdio etc)
commitab51b1d568e02c80b1abf9016bda3a86dc1db389
authorMichael Tokarev <mjt@tls.msk.ru>
Sun, 30 Dec 2012 08:48:14 +0000 (30 12:48 +0400)
committerAnthony Liguori <aliguori@us.ibm.com>
Wed, 2 Jan 2013 19:32:41 +0000 (2 13:32 -0600)
treecac5c53f509b8453f876253b96877fdea299f6cd
parent217da7fdeb2a4c99c49f22f9dc64c8df2e3a4387
disallow -daemonize usage of stdio (curses display, -nographic, -serial stdio etc)

Curses display requires stdin/out to stay on the terminal,
so -daemonize makes no sense in this case.  Instead of
leaving display uninitialized like is done since 995ee2bf469de6bb,
explicitly detect this case earlier and error out.

-nographic can actually be used with -daemonize, by redirecting
everything to a null device, but the problem is that according
to documentation and historical behavour, -nographic redirects
guest ports to stdin/out, which, again, makes no sense in case
of -daemonize.  Since -nographic is a legacy option, don't bother
fixing this case (to allow -nographic and -daemonize by redirecting
guest ports to null instead of stdin/out in this case), but disallow
it completely instead, to stop garbling host terminal.

If no display display needed and user wants to use -nographic,
the right way to go is to use
  -serial null -parallel null -monitor none -display none -vga none
instead of -nographic.

Also prevent the same issue -- it was possible to get garbled
host tty after

  -nographic -daemonize

and it is still possible to have it by using

  -serial stdio -daemonize

Fix this by disallowing opening stdio chardev when -daemonize
is specified.

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qemu-char.c
vl.c