hmp.c | 4 +++- hw/acpi/vmgenid.c | 1 + 2 files changed, 4 insertions(+), 1 deletion(-)
From: Ben Warren <ben@skyportsystems.com>
This was crashing due to NULL-pointer dereference
QMP Test case:
==============
(QEMU) query-vm-generation-id
{"error": {"class": "GenericError", "desc": "VM Generation ID device not
found"}}
HMP Test case:
==============
virsh # qemu-monitor-command --hmp 3 info vm-generation-id
VM Generation ID device not found
Signed-off-by: Ben Warren <ben@skyportsystems.com>
---
hmp.c | 4 +++-
hw/acpi/vmgenid.c | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/hmp.c b/hmp.c
index 261843f..edb8970 100644
--- a/hmp.c
+++ b/hmp.c
@@ -2608,9 +2608,11 @@ void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict)
{
- GuidInfo *info = qmp_query_vm_generation_id(NULL);
+ Error *err = NULL;
+ GuidInfo *info = qmp_query_vm_generation_id(&err);
if (info) {
monitor_printf(mon, "%s\n", info->guid);
}
+ hmp_handle_error(mon, &err);
qapi_free_GuidInfo(info);
}
diff --git a/hw/acpi/vmgenid.c b/hw/acpi/vmgenid.c
index 744f284..7a3ad17 100644
--- a/hw/acpi/vmgenid.c
+++ b/hw/acpi/vmgenid.c
@@ -248,6 +248,7 @@ GuidInfo *qmp_query_vm_generation_id(Error **errp)
Object *obj = find_vmgenid_dev();
if (!obj) {
+ error_setg(errp, "VM Generation ID device not found");
return NULL;
}
vms = VMGENID(obj);
--
2.7.4
On 03/02/2017 03:36 PM, ben@skyportsystems.com wrote: > From: Ben Warren <ben@skyportsystems.com> > > This was crashing due to NULL-pointer dereference > > QMP Test case: > ============== > > (QEMU) query-vm-generation-id > {"error": {"class": "GenericError", "desc": "VM Generation ID device not > found"}} > > HMP Test case: > ============== > virsh # qemu-monitor-command --hmp 3 info vm-generation-id > VM Generation ID device not found > > Signed-off-by: Ben Warren <ben@skyportsystems.com> > --- > hmp.c | 4 +++- > hw/acpi/vmgenid.c | 1 + > 2 files changed, 4 insertions(+), 1 deletion(-) Reviewed-by: Eric Blake <eblake@redhat.com> However, hw/acpi/vmgenid.c is not part of the tree yet, so it may be better to just respin the pull request to incorporate this into the problematic patch that introduced the problem, rather than needing a followup patch. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
On Thu, Mar 02, 2017 at 03:41:33PM -0600, Eric Blake wrote: > On 03/02/2017 03:36 PM, ben@skyportsystems.com wrote: > > From: Ben Warren <ben@skyportsystems.com> > > > > This was crashing due to NULL-pointer dereference > > > > QMP Test case: > > ============== > > > > (QEMU) query-vm-generation-id > > {"error": {"class": "GenericError", "desc": "VM Generation ID device not > > found"}} > > > > HMP Test case: > > ============== > > virsh # qemu-monitor-command --hmp 3 info vm-generation-id > > VM Generation ID device not found > > > > Signed-off-by: Ben Warren <ben@skyportsystems.com> > > --- > > hmp.c | 4 +++- > > hw/acpi/vmgenid.c | 1 + > > 2 files changed, 4 insertions(+), 1 deletion(-) > > Reviewed-by: Eric Blake <eblake@redhat.com> > > However, hw/acpi/vmgenid.c is not part of the tree yet, so it may be > better to just respin the pull request to incorporate this into the > problematic patch that introduced the problem, rather than needing a > followup patch. > > -- > Eric Blake eblake redhat com +1-919-301-3266 > Libvirt virtualization library http://libvirt.org > The issue seems minor enough. I don't plan to re-spin unless there are more issues. -- MST
On 03/02/17 22:36, ben@skyportsystems.com wrote: > From: Ben Warren <ben@skyportsystems.com> > > This was crashing due to NULL-pointer dereference > > QMP Test case: > ============== > > (QEMU) query-vm-generation-id > {"error": {"class": "GenericError", "desc": "VM Generation ID device not > found"}} > > HMP Test case: > ============== > virsh # qemu-monitor-command --hmp 3 info vm-generation-id > VM Generation ID device not found > > Signed-off-by: Ben Warren <ben@skyportsystems.com> > --- > hmp.c | 4 +++- > hw/acpi/vmgenid.c | 1 + > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/hmp.c b/hmp.c > index 261843f..edb8970 100644 > --- a/hmp.c > +++ b/hmp.c > @@ -2608,9 +2608,11 @@ void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict) > > void hmp_info_vm_generation_id(Monitor *mon, const QDict *qdict) > { > - GuidInfo *info = qmp_query_vm_generation_id(NULL); > + Error *err = NULL; > + GuidInfo *info = qmp_query_vm_generation_id(&err); > if (info) { > monitor_printf(mon, "%s\n", info->guid); > } > + hmp_handle_error(mon, &err); > qapi_free_GuidInfo(info); > } > diff --git a/hw/acpi/vmgenid.c b/hw/acpi/vmgenid.c > index 744f284..7a3ad17 100644 > --- a/hw/acpi/vmgenid.c > +++ b/hw/acpi/vmgenid.c > @@ -248,6 +248,7 @@ GuidInfo *qmp_query_vm_generation_id(Error **errp) > Object *obj = find_vmgenid_dev(); > > if (!obj) { > + error_setg(errp, "VM Generation ID device not found"); > return NULL; > } > vms = VMGENID(obj); > Reviewed-by: Laszlo Ersek <lersek@redhat.com>
© 2016 - 2024 Red Hat, Inc.