[libvirt] [PATCH] qemuxml2argvtest: Don't leak TPM unix path

Andrea Bolognani abologna at redhat.com
Thu Jun 14 08:39:46 UTC 2018


On Wed, 2018-06-13 at 15:58 +0200, Michal Privoznik wrote:
> When testing a domain XML with TPM we overwrite UNIX socket path
> to mimic what qemuTPMEmulatorPrepareHost() is doing (because
> *PrepareHost() functions are not called from the test). But we
> are not doing it fully - we need to set the chardev's type too so
> that virDomainTPMDefFree() can free the path.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  tests/qemuxml2argvtest.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
> index f630185de1..daa8d4ceeb 100644
> --- a/tests/qemuxml2argvtest.c
> +++ b/tests/qemuxml2argvtest.c
> @@ -551,9 +551,11 @@ testCompareXMLToArgv(const void *data)
>      if (vm->def->tpm) {
>          switch (vm->def->tpm->type) {
>          case VIR_DOMAIN_TPM_TYPE_EMULATOR:
> +            VIR_FREE(vm->def->tpm->data.emulator.source.data.file.path);
>              if (VIR_STRDUP(vm->def->tpm->data.emulator.source.data.file.path,
>                             "/dev/test") < 0)
>                  goto cleanup;
> +            vm->def->tpm->data.emulator.source.type = VIR_DOMAIN_CHR_TYPE_UNIX;

Looking at virDomainChrSourceDefClear(), called by
virDomainTPMDefFree(), when type is CHR_TYPE_UNIX data.nix.path
will be VIR_FREE()d, so I think you want to set type to
CHR_TYPE_FILE instead.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list