On 12/02/2013 07:59 PM, Wangyufei (James) wrote: > When an error occurred in qemuAgentIO, it will be saved in mon->lastError, > but it will not be freed at last. > So I add the following code to fix it. > > ==22219== 54 bytes in 1 blocks are definitely lost in loss record 982 of 1,379 > ==22219== at 0x4C26B9B: malloc (vg_replace_malloc.c:263) > ==22219== by 0x8520521: strdup (in /lib64/libc-2.11.3.so) > ==22219== by 0x52E99CB: virStrdup (virstring.c:554) > ==22219== by 0x52B44C4: virCopyError (virerror.c:195) > ==22219== by 0x52B5123: virCopyLastError (virerror.c:312) > ==22219== by 0x10905877: qemuAgentIO (qemu_agent.c:660) > ==22219== by 0x52B6122: virEventPollDispatchHandles (vireventpoll.c:501) > ==22219== by 0x52B7AEA: virEventPollRunOnce (vireventpoll.c:647) > ==22219== by 0x52B5C1B: virEventRunDefaultImpl (virevent.c:274) > ==22219== by 0x54181FD: virNetServerRun (virnetserver.c:1112) > ==22219== by 0x11EF4D: main (libvirtd.c:1513) > > Signed-off-by: Zhou Yimin <zhouyimin@xxxxxxxxxx> > --- > src/qemu/qemu_agent.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) ACK and pushed. I amended the commit message to mention that the leak appears to have been present since the beginning of this file (commit c160ce). > > diff --git a/src/qemu/qemu_agent.c b/src/qemu/qemu_agent.c > index 2cd0ccc..4a3820c 100644 > --- a/src/qemu/qemu_agent.c > +++ b/src/qemu/qemu_agent.c > @@ -161,6 +161,7 @@ static void qemuAgentDispose(void *obj) > (mon->cb->destroy)(mon, mon->vm); > virCondDestroy(&mon->notify); > VIR_FREE(mon->buffer); > + virResetError(&mon->lastError); > } > > static int > -- Eric Blake eblake redhat com +1-919-301-3266 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