On 2014/8/27 14:44, Markus Armbruster wrote: > "john.liuli" <john.li...@huawei.com> writes: > >> From: Li Liu <john.li...@huawei.com> >> >> Eeay to reproduce, just try "qemu -monitor stdio -nographic" >> and type "quit", then the terminal will be crashed. >> >> There are two pathes try to call tcgetattr of stdio in vl.c: >> >> 1) Monitor_parse(optarg, "readline"); >> ..... >> qemu_opts_foreach(qemu_find_opts("chardev"), >> chardev_init_func, NULL, 1) != 0) >> >> 2) if (default_serial) >> add_device_config(DEV_SERIAL, "stdio"); >> .... >> if (foreach_device_config(DEV_SERIAL, serial_parse) < 0) >> >> Both of them will trigger qemu_chr_open_stdio which will disable >> ECHO attributes. First one has updated the attributes of stdio >> by calling qemu_chr_fe_set_echo(chr, false). And the tty >> attributes has been saved in oldtty. Then the second path will >> redo such actions, and the oldtty is overlapped. So till "quit", >> term_exit can't recove the correct attributes. >> >> Signed-off-by: Li Liu <john.li...@huawei.com> > > Yes, failure to restore tty settings is a bug. > > But is having multiple character devices use the same terminal valid?
I'm not sure. But I have found such comments in vl.c "According to documentation and historically, -nographic redirects serial port, parallel port and monitor to stdio" Best regards Li. > If no, can we catch and reject the attempt? > > [...] > >