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

Ján Tomko jtomko at redhat.com
Thu Apr 19 15:00:21 UTC 2018


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 at 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 at redhat.com>

Jano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180419/2683c50e/attachment-0001.sig>


More information about the libvir-list mailing list