]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuAgentDispose: Reset lastError
authorWangyufei (James) <james.wangyufei@huawei.com>
Tue, 3 Dec 2013 02:59:00 +0000 (02:59 +0000)
committerEric Blake <eblake@redhat.com>
Wed, 4 Dec 2013 21:43:54 +0000 (14:43 -0700)
When an error occurred in qemuAgentIO, it will be saved in mon->lastError,
but it will not be freed at the end.  Present since commit c160ce33;
and compare to commit 9cc8a5af fixing the same problem in qemu_monitor.c.

==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@huawei.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
src/qemu/qemu_agent.c

index 2cd0ccc70972fc832623462dacbeb9c53fbadffd..4a3820cef5df6f76a082ed396e34ef55aa71cd2d 100644 (file)
@@ -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