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

Michal Privoznik posted 1 patch 6 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/006f97fc1d804b84c6cd886dee70a823b2d810e4.1524147416.git.mprivozn@redhat.com
Test syntax-check passed
src/qemu/qemu_domain.c | 2 ++
1 file changed, 2 insertions(+)
[libvirt] [PATCH v2] qemuDomainObjPrivateDataClear: Don't leak @migParams
Posted by Michal Privoznik 6 years ago
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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2] qemuDomainObjPrivateDataClear: Don't leak @migParams
Posted by Michal Privoznik 6 years ago
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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2] qemuDomainObjPrivateDataClear: Don't leak @migParams
Posted by Ján Tomko 6 years ago
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
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2] qemuDomainObjPrivateDataClear: Don't leak @migParams
Posted by Ján Tomko 6 years ago
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
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list