|
|
6ae9ed |
From 6add0a541a003a6ba45ddf5aa7412e2ded98dcac Mon Sep 17 00:00:00 2001
|
|
|
6ae9ed |
Message-Id: <6add0a541a003a6ba45ddf5aa7412e2ded98dcac@dist-git>
|
|
|
6ae9ed |
From: Michal Privoznik <mprivozn@redhat.com>
|
|
|
6ae9ed |
Date: Wed, 24 Aug 2016 16:10:57 -0400
|
|
|
6ae9ed |
Subject: [PATCH] qemuBuildCpuCommandLine: Don't leak @buf
|
|
|
6ae9ed |
|
|
|
6ae9ed |
https://bugzilla.redhat.com/show_bug.cgi?id=1097930
|
|
|
6ae9ed |
https://bugzilla.redhat.com/show_bug.cgi?id=1224341
|
|
|
6ae9ed |
|
|
|
6ae9ed |
Just like every other qemuBuild*CommandLine() function, this uses
|
|
|
6ae9ed |
a buffer to hold partial cmd line strings too. However, if
|
|
|
6ae9ed |
there's an error, the control jumps to 'cleanup' label leaving
|
|
|
6ae9ed |
the buffer behind and thus leaking it.
|
|
|
6ae9ed |
|
|
|
6ae9ed |
==2013== 1,006 bytes in 1 blocks are definitely lost in loss record 701 of 711
|
|
|
6ae9ed |
==2013== at 0x4C29F80: malloc (vg_replace_malloc.c:296)
|
|
|
6ae9ed |
==2013== by 0x4C2C32F: realloc (vg_replace_malloc.c:692)
|
|
|
6ae9ed |
==2013== by 0xAD925A8: virReallocN (viralloc.c:245)
|
|
|
6ae9ed |
==2013== by 0xAD95EA8: virBufferGrow (virbuffer.c:130)
|
|
|
6ae9ed |
==2013== by 0xAD95F78: virBufferAdd (virbuffer.c:165)
|
|
|
6ae9ed |
==2013== by 0x5097F5: qemuBuildCpuModelArgStr (qemu_command.c:6339)
|
|
|
6ae9ed |
==2013== by 0x509CC3: qemuBuildCpuCommandLine (qemu_command.c:6437)
|
|
|
6ae9ed |
==2013== by 0x51142C: qemuBuildCommandLine (qemu_command.c:9174)
|
|
|
6ae9ed |
==2013== by 0x47CA3A: qemuProcessCreatePretendCmd (qemu_process.c:5546)
|
|
|
6ae9ed |
==2013== by 0x433698: testCompareXMLToArgvFiles (qemuxml2argvtest.c:332)
|
|
|
6ae9ed |
==2013== by 0x4339AC: testCompareXMLToArgvHelper (qemuxml2argvtest.c:413)
|
|
|
6ae9ed |
==2013== by 0x446E7A: virTestRun (testutils.c:179)
|
|
|
6ae9ed |
|
|
|
6ae9ed |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
6ae9ed |
(cherry picked from commit 87df945240dcd9769d6fd6dbddfb2bb5601b349d)
|
|
|
6ae9ed |
---
|
|
|
6ae9ed |
src/qemu/qemu_command.c | 1 +
|
|
|
6ae9ed |
1 file changed, 1 insertion(+)
|
|
|
6ae9ed |
|
|
|
6ae9ed |
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
|
|
6ae9ed |
index 9832a6a..57b04ee 100644
|
|
|
6ae9ed |
--- a/src/qemu/qemu_command.c
|
|
|
6ae9ed |
+++ b/src/qemu/qemu_command.c
|
|
|
6ae9ed |
@@ -6841,6 +6841,7 @@ qemuBuildCpuCommandLine(virCommandPtr cmd,
|
|
|
6ae9ed |
|
|
|
6ae9ed |
cleanup:
|
|
|
6ae9ed |
VIR_FREE(cpu);
|
|
|
6ae9ed |
+ virBufferFreeAndReset(&buf;;
|
|
|
6ae9ed |
return ret;
|
|
|
6ae9ed |
}
|
|
|
6ae9ed |
|
|
|
6ae9ed |
--
|
|
|
6ae9ed |
2.10.0
|
|
|
6ae9ed |
|