qdev: Free opts on failed do_device_add
If the device can't be created, don't leak the QemuOpts and release the id of the device that should have been added by the failed device_add. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
4c5b10b7b6
commit
0f853a3867
|
@ -749,8 +749,11 @@ void do_device_add(Monitor *mon, const QDict *qdict)
|
||||||
|
|
||||||
opts = qemu_opts_parse(&qemu_device_opts,
|
opts = qemu_opts_parse(&qemu_device_opts,
|
||||||
qdict_get_str(qdict, "config"), "driver");
|
qdict_get_str(qdict, "config"), "driver");
|
||||||
if (opts && !qdev_device_help(opts))
|
if (opts) {
|
||||||
qdev_device_add(opts);
|
if (qdev_device_help(opts) || qdev_device_add(opts) == NULL) {
|
||||||
|
qemu_opts_del(opts);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void do_device_del(Monitor *mon, const QDict *qdict)
|
void do_device_del(Monitor *mon, const QDict *qdict)
|
||||||
|
|
Loading…
Reference in a new issue