On 06/30/2011 08:10 AM, Daniel P. Berrange wrote: > The event handler functions do not free the virJSONValuePtr > object. Every event received from a VM thus caused a memory > leak > > * src/qemu/qemu_monitor_json.c: Fix leak of event object > --- > src/qemu/qemu_monitor_json.c | 5 ++--- > 1 files changed, 2 insertions(+), 3 deletions(-) Nice catch. > > diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c > index 7d286d8..81b7f8c 100644 > --- a/src/qemu/qemu_monitor_json.c > +++ b/src/qemu/qemu_monitor_json.c > @@ -122,7 +122,6 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon, > > if (virJSONValueObjectHasKey(obj, "QMP") == 1) { > ret = 0; > - virJSONValueFree(obj); > } else if (virJSONValueObjectHasKey(obj, "event") == 1) { > ret = qemuMonitorJSONIOProcessEvent(mon, obj); > } else if (virJSONValueObjectHasKey(obj, "error") == 1 || > @@ -130,6 +129,7 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon, > if (msg) { > msg->rxObject = obj; > msg->finished = 1; > + obj = NULL; > ret = 0; > } else { > qemuReportError(VIR_ERR_INTERNAL_ERROR, > @@ -141,8 +141,7 @@ qemuMonitorJSONIOProcessLine(qemuMonitorPtr mon, > } > > cleanup: > - if (ret < 0) > - virJSONValueFree(obj); > + virJSONValueFree(obj); ACK. -- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list