Signed-off-by: Laszlo Ersek <ler...@redhat.com> --- hw/qdev-monitor.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c index 3ec9e49..32be5a2 100644 --- a/hw/qdev-monitor.c +++ b/hw/qdev-monitor.c @@ -590,14 +590,17 @@ void do_info_qdm(Monitor *mon, const QDict *qdict) int do_device_add(Monitor *mon, const QDict *qdict, QObject **ret_data) { Error *local_err = NULL; + QemuOptsList *list; QemuOpts *opts; - opts = qemu_opts_from_qdict(qemu_find_opts("device"), qdict, &local_err); - if (error_is_set(&local_err)) { + if ((list = qemu_find_opts_err("device", &local_err)) == NULL || + (opts = qemu_opts_from_qdict(list, qdict, &local_err)) == NULL) { + assert(error_is_set(&local_err)); qerror_report_err(local_err); error_free(local_err); return -1; } + if (!monitor_cur_is_qmp() && qdev_device_help(opts)) { qemu_opts_del(opts); return 0; -- 1.7.1