From: Michal Privoznik Date: Mon, 13 May 2019 12:32:06 +0000 (+0200) Subject: virsh: Don't leak disk targets in cmdDomBlkError X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=d55be92286f3b0143e263d42ce421d5c441f2cab;p=libvirt.git virsh: Don't leak disk targets in cmdDomBlkError The virDomainGetDiskErrors() API copies disk targets into @disks array that we allocate. But we forgot to free it: ==140828== 16 bytes in 4 blocks are definitely lost in loss record 41 of 242 ==140828== at 0x4C2F08F: malloc (vg_replace_malloc.c:299) ==140828== by 0x8C406D9: strdup (in /lib64/libc-2.28.so) ==140828== by 0x5377DD3: virStrdup (virstring.c:966) ==140828== by 0x54C112F: testDomainGetDiskErrors (test_driver.c:3068) ==140828== by 0x55C863D: virDomainGetDiskErrors (libvirt-domain.c:10988) ==140828== by 0x15D1FA: cmdDomBlkError (virsh-domain-monitor.c:1215) ==140828== by 0x17F1A8: vshCommandRun (vsh.c:1335) ==140828== by 0x13489E: main (virsh.c:920) Signed-off-by: Michal Privoznik --- diff --git a/tools/virsh-domain-monitor.c b/tools/virsh-domain-monitor.c index d87475f6f6..d2b7e5a059 100644 --- a/tools/virsh-domain-monitor.c +++ b/tools/virsh-domain-monitor.c @@ -1229,6 +1229,8 @@ cmdDomBlkError(vshControl *ctl, const vshCmd *cmd) ret = true; cleanup: + for (i = 0; i < count; i++) + VIR_FREE(disks[i].disk); VIR_FREE(disks); virshDomainFree(dom); return ret;