[libvirt] [PATCH v2] qemuDomainObjPrivateDataClear: Don't leak @migParams

Allocated in qemuMigrationParamsNew() we need to free priv->job.migParams when no longer needed. ==8061== 234 (192 direct, 42 indirect) bytes in 1 blocks are definitely lost in loss record 112 of 123 ==8061== at 0x4C2CF26: calloc (vg_replace_malloc.c:711) ==8061== by 0x5325D05: virAlloc (viralloc.c:144) ==8061== by 0x1984F9: qemuMigrationParamsNew (qemu_migration_params.c:218) ==8061== by 0x19A352: qemuMigrationParamsParse (qemu_migration_params.c:1185) ==8061== by 0x1604D8: qemuDomainObjPrivateXMLParseJob (qemu_domain.c:2390) ==8061== by 0x160AE9: qemuDomainObjPrivateXMLParse (qemu_domain.c:2517) ==8061== by 0x5419EAE: virDomainObjParseXML (domain_conf.c:20442) ==8061== by 0x541A25E: virDomainObjParseNode (domain_conf.c:20555) ==8061== by 0x541A2FC: virDomainObjParseFile (domain_conf.c:20574) ==8061== by 0x13607D: testCompareStatusXMLToXMLFiles (qemuxml2xmltest.c:75) ==8061== by 0x14F3E8: virTestRun (testutils.c:180) ==8061== by 0x14DCD0: mymain (qemuxml2xmltest.c:1200) Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_domain.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e2a8450e2e..027321e1d4 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1895,6 +1895,8 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivatePtr priv) virBitmapFree(priv->migrationCaps); priv->migrationCaps = NULL; + + qemuMigrationParamsFree(priv->job.migParams); } -- 2.16.1

On 04/19/2018 04:16 PM, Michal Privoznik wrote:
Allocated in qemuMigrationParamsNew() we need to free priv->job.migParams when no longer needed.
==8061== 234 (192 direct, 42 indirect) bytes in 1 blocks are definitely lost in loss record 112 of 123 ==8061== at 0x4C2CF26: calloc (vg_replace_malloc.c:711) ==8061== by 0x5325D05: virAlloc (viralloc.c:144) ==8061== by 0x1984F9: qemuMigrationParamsNew (qemu_migration_params.c:218) ==8061== by 0x19A352: qemuMigrationParamsParse (qemu_migration_params.c:1185) ==8061== by 0x1604D8: qemuDomainObjPrivateXMLParseJob (qemu_domain.c:2390) ==8061== by 0x160AE9: qemuDomainObjPrivateXMLParse (qemu_domain.c:2517) ==8061== by 0x5419EAE: virDomainObjParseXML (domain_conf.c:20442) ==8061== by 0x541A25E: virDomainObjParseNode (domain_conf.c:20555) ==8061== by 0x541A2FC: virDomainObjParseFile (domain_conf.c:20574) ==8061== by 0x13607D: testCompareStatusXMLToXMLFiles (qemuxml2xmltest.c:75) ==8061== by 0x14F3E8: virTestRun (testutils.c:180) ==8061== by 0x14DCD0: mymain (qemuxml2xmltest.c:1200)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_domain.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e2a8450e2e..027321e1d4 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1895,6 +1895,8 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivatePtr priv)
virBitmapFree(priv->migrationCaps); priv->migrationCaps = NULL; + + qemuMigrationParamsFree(priv->job.migParams);
Oh, forgot to 'git commit --ammend' before hitting send. This is what I have forgot to add: diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 027321e1d4..4c62a44449 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1896,7 +1896,8 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivatePtr priv) virBitmapFree(priv->migrationCaps); priv->migrationCaps = NULL; - qemuMigrationParamsFree(priv->job.migParams); + qemuDomainObjResetJob(priv); + qemuDomainObjResetAsyncJob(priv); } Michal

On Thu, Apr 19, 2018 at 04:28:36PM +0200, Michal Privoznik wrote:
On 04/19/2018 04:16 PM, Michal Privoznik wrote:
Allocated in qemuMigrationParamsNew() we need to free priv->job.migParams when no longer needed.
==8061== 234 (192 direct, 42 indirect) bytes in 1 blocks are definitely lost in loss record 112 of 123 ==8061== at 0x4C2CF26: calloc (vg_replace_malloc.c:711) ==8061== by 0x5325D05: virAlloc (viralloc.c:144) ==8061== by 0x1984F9: qemuMigrationParamsNew (qemu_migration_params.c:218) ==8061== by 0x19A352: qemuMigrationParamsParse (qemu_migration_params.c:1185) ==8061== by 0x1604D8: qemuDomainObjPrivateXMLParseJob (qemu_domain.c:2390) ==8061== by 0x160AE9: qemuDomainObjPrivateXMLParse (qemu_domain.c:2517) ==8061== by 0x5419EAE: virDomainObjParseXML (domain_conf.c:20442) ==8061== by 0x541A25E: virDomainObjParseNode (domain_conf.c:20555) ==8061== by 0x541A2FC: virDomainObjParseFile (domain_conf.c:20574) ==8061== by 0x13607D: testCompareStatusXMLToXMLFiles (qemuxml2xmltest.c:75) ==8061== by 0x14F3E8: virTestRun (testutils.c:180) ==8061== by 0x14DCD0: mymain (qemuxml2xmltest.c:1200)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_domain.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e2a8450e2e..027321e1d4 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1895,6 +1895,8 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivatePtr priv)
virBitmapFree(priv->migrationCaps); priv->migrationCaps = NULL; + + qemuMigrationParamsFree(priv->job.migParams);
Oh, forgot to 'git commit --ammend' before hitting send. This is what I have forgot to add:
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 027321e1d4..4c62a44449 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1896,7 +1896,8 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivatePtr priv) virBitmapFree(priv->migrationCaps); priv->migrationCaps = NULL;
- qemuMigrationParamsFree(priv->job.migParams); + qemuDomainObjResetJob(priv); + qemuDomainObjResetAsyncJob(priv);
This is why diffs against diffs are evil :P Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano

On Thu, Apr 19, 2018 at 04:16:56PM +0200, Michal Privoznik wrote:
Allocated in qemuMigrationParamsNew() we need to free priv->job.migParams when no longer needed.
==8061== 234 (192 direct, 42 indirect) bytes in 1 blocks are definitely lost in loss record 112 of 123 ==8061== at 0x4C2CF26: calloc (vg_replace_malloc.c:711) ==8061== by 0x5325D05: virAlloc (viralloc.c:144) ==8061== by 0x1984F9: qemuMigrationParamsNew (qemu_migration_params.c:218) ==8061== by 0x19A352: qemuMigrationParamsParse (qemu_migration_params.c:1185) ==8061== by 0x1604D8: qemuDomainObjPrivateXMLParseJob (qemu_domain.c:2390) ==8061== by 0x160AE9: qemuDomainObjPrivateXMLParse (qemu_domain.c:2517) ==8061== by 0x5419EAE: virDomainObjParseXML (domain_conf.c:20442) ==8061== by 0x541A25E: virDomainObjParseNode (domain_conf.c:20555) ==8061== by 0x541A2FC: virDomainObjParseFile (domain_conf.c:20574) ==8061== by 0x13607D: testCompareStatusXMLToXMLFiles (qemuxml2xmltest.c:75) ==8061== by 0x14F3E8: virTestRun (testutils.c:180) ==8061== by 0x14DCD0: mymain (qemuxml2xmltest.c:1200)
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> --- src/qemu/qemu_domain.c | 2 ++ 1 file changed, 2 insertions(+)
What is the difference to v1? Seems like the exact same patch. Jano
participants (2)
-
Ján Tomko
-
Michal Privoznik