From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60029) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XMXr8-0004TV-Fj for qemu-devel@nongnu.org; Wed, 27 Aug 2014 03:41:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XMXr3-0004FA-Lz for qemu-devel@nongnu.org; Wed, 27 Aug 2014 03:41:22 -0400 Received: from szxga03-in.huawei.com ([119.145.14.66]:9891) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XMXr2-0004C4-Rw for qemu-devel@nongnu.org; Wed, 27 Aug 2014 03:41:17 -0400 Message-ID: <53FD8B7D.7030301@huawei.com> Date: Wed, 27 Aug 2014 15:40:45 +0800 From: Li Liu MIME-Version: 1.0 References: <1409115651-3612-1-git-send-email-john.liuli@huawei.com> <87iolefn36.fsf@blackfin.pond.sub.org> In-Reply-To: <87iolefn36.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] qemu-char: fix terminal crash when using "-monitor stdio -nographic" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: qemu-devel@nongnu.org, aliguori@amazon.com On 2014/8/27 14:44, Markus Armbruster wrote: > "john.liuli" writes: > >> From: Li Liu >> >> 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 > > 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? > > [...] > >