Re: [libvirt PATCH v2] qemu: tpm: do not update profile name for transient domains

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Dec 10, 2024 at 15:01:16 +0100, Ján Tomko wrote:
> If we do not have a persistent definition, there's no point in
> looking for it since we cannot store it.
> 
> Also skip the update if the tpm device(s) in the persistent
> definition are different.
> 
> This fixes the crash when starting a transient domain.
> 
> https://issues.redhat.com/browse/RHEL-69774
> 
> Fixes: d79542eec669eb9c449bb8228179e7a87e768017
> Signed-off-by: Ján Tomko <jtomko@xxxxxxxxxx>
> ---
>  src/qemu/qemu_extdevice.c | 12 +++++++++++-
>  src/qemu/qemu_tpm.c       |  2 +-
>  2 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c
> index a6f31f9773..21db01a361 100644
> --- a/src/qemu/qemu_extdevice.c
> +++ b/src/qemu/qemu_extdevice.c
> @@ -190,7 +190,17 @@ qemuExtDevicesStart(virQEMUDriver *driver,
>  
>      for (i = 0; i < def->ntpms; i++) {
>          virDomainTPMDef *tpm = def->tpms[i];
> -        virDomainTPMDef *persistentTPMDef = persistentDef->tpms[i];
> +        virDomainTPMDef *persistentTPMDef = NULL;
> +
> +        if (persistentDef) {
> +            /* do not try to update the profile in the persistent definition
> +             * if the device does not match */
> +            if (persistentDef->ntpms == def->ntpms)
> +                persistentTPMDef = persistentDef->tpms[i];

persistentTPMDef may still be NULL here and the following check will
happily dereference it

> +            if (persistentTPMDef->type != tpm->type ||
> +                persistentTPMDef->model != tpm->model)
> +                persistentTPMDef = NULL;
> +        }
>  
>          if (tpm->type == VIR_DOMAIN_TPM_TYPE_EMULATOR &&
>              qemuExtTPMStart(driver, vm, tpm, persistentTPMDef,

Jirka




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux