From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NHf4E-0003eG-71 for qemu-devel@nongnu.org; Mon, 07 Dec 2009 10:00:02 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NHf49-0003XB-3B for qemu-devel@nongnu.org; Mon, 07 Dec 2009 10:00:01 -0500 Received: from [199.232.76.173] (port=41774 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NHf48-0003Wz-U2 for qemu-devel@nongnu.org; Mon, 07 Dec 2009 09:59:56 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45684) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NHf48-0006aI-Ks for qemu-devel@nongnu.org; Mon, 07 Dec 2009 09:59:56 -0500 Date: Mon, 7 Dec 2009 12:59:47 -0200 From: Luiz Capitulino Message-ID: <20091207125947.46562073@doriath> In-Reply-To: <1260189773-20728-18-git-send-email-kraxel@redhat.com> References: <1260189773-20728-1-git-send-email-kraxel@redhat.com> <1260189773-20728-18-git-send-email-kraxel@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [FOR 0.12 PATCH v3 17/21] rework -monitor handling, switch to QemuOpts List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org, agraf@suse.de On Mon, 7 Dec 2009 13:42:49 +0100 Gerd Hoffmann wrote: > +static int mon_init_func(QemuOpts *opts, void *opaque) > +{ > + CharDriverState *chr; > + const char *chardev; > + const char *mode; > + int flags; > + > + qemu_opts_print(opts, NULL); > + > + mode = qemu_opt_get(opts, "mode"); > + if (mode == NULL) { > + mode = "readline"; > + } > + if (strcmp(mode, "readline") == 0) { > + flags = MONITOR_USE_READLINE; > + } else if (strcmp(mode, "control") == 0) { > + flags = MONITOR_USE_CONTROL; > + } else { > + fprintf(stderr, "unknown monitor mode \"%s\"\n", mode); > + exit(1); > + } > + > + if (qemu_opt_get_bool(opts, "default", 0)) > + flags |= MONITOR_IS_DEFAULT; > + > + chardev = qemu_opt_get(opts, "chardev"); > + chr = qemu_chr_find(chardev); > + if (chardev == NULL) { > + fprintf(stderr, "chardev \"%s\" not found\n", chardev); > + exit(1); > + } We should check for NULL before calling qemu_chr_find(). Also, I'm getting a segfault when running QEMU w/o any monitor cmd-line, like: $ qemu -hda disks/fedora-11-kratos-i386.img -m 1G The reason for the segfault is that the chardev 'monitor' is not found, so qemu_chr_find() returns NULL, passing it down to: > + > + monitor_init(chr, flags); > + return 0; > +} > + Apart from that, monitor changes seem ok to me.