Li Liu <john.li...@huawei.com> writes: > Ping, any more comments? Thanks.
I'd like to hear Gerd's opinion (cc'ed). > On 2014/8/27 15:40, Li Liu wrote: >> >> >> 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? >>> >>> [...]