On 11/24/21 11:58, Daniel P. Berrangé wrote:
> The check for whether the swtpm binary was modified is checking pointers
> to the mtime field in two distinct structs, so will always compare
> different. This resulted in re-probing swtpm capabilities every time,
> as many as 20 times for a single VM launch.
>
> Fixes:
>
> commit 01cf7a1bb9f1da27ad8bcbaa82c4f7a948c6a793
> Author: Stefan Berger <stefanb@us.ibm.com>
> Date: Thu Jul 25 14:22:04 2019 -0400
>
> tpm: Check whether previously found executables were updated
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> src/util/virtpm.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/util/virtpm.c b/src/util/virtpm.c
> index 8a77ba98ff..ffec23a535 100644
> --- a/src/util/virtpm.c
> +++ b/src/util/virtpm.c
> @@ -301,7 +301,7 @@ virTPMEmulatorInit(void)
> findit = true;
>
> if (!findit &&
> - &statbuf.st_mtime != &prgs[i].stat->st_mtime)
> + statbuf.st_mtime != prgs[i].stat->st_mtime)
> findit = true;
> }
>
>
Well, if the function ends up on the same position in stack every time
it's called then this works :-)
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Michal