On 01/04/2015 10:35 PM, Tiejun Chen wrote: > After one commit 49d2e648e808, "machine: remove qemu_machine_opts > global list", is introduced, QEMU doesn't keep a global list of > options but set desc lately. Then we can see the following, > > $ x86_64-softmmu/qemu-system-x86_64 -usb > qemu-system-x86_64: util/qemu-option.c:387: qemu_opt_get_bool_helper: \ > Assertion `opt->desc && opt->desc->type == QEMU_OPT_BOOL' failed. > Aborted (core dumped) > > So inside qemu_opt_get_bool_helper, we need to call find_desc_by_name() > to work parse_option_bool() out just in case of !opt->desc. > > Signed-off-by: Tiejun Chen <tiejun.c...@intel.com> > --- > util/qemu-option.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/util/qemu-option.c b/util/qemu-option.c > index a708241..7cb3601 100644 > --- a/util/qemu-option.c > +++ b/util/qemu-option.c > @@ -377,7 +377,7 @@ static bool qemu_opt_get_bool_helper(QemuOpts *opts, > const char *name, > } > > opt = qemu_opt_find(opts, name); > - if (opt == NULL) { > + if ((opt == NULL) || !opt->desc) {
Over-parenthesized, and looks like you also introduced a spurious space. Simpler to just have: if (!opt || !opt->desc) { Also, there are other threads about the same topic. https://lists.gnu.org/archive/html/qemu-devel/2015-01/msg00130.html -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature