Re: [PATCH 2/2] qemu_tpm: Try harder to create emulator state

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

 



On a Friday in 2023, Michal Privoznik wrote:
If a per-domain SWTPM state directory exists but is empty our
code still considers it a valid state and skips running
'swtpm_setup' (handled in qemuTPMEmulatorRunSetup()).
While we should not try to inspect individual files created by
swtpm, we can still consider empty folder as non-existent state.

Resolves: https://gitlab.com/libvirt/libvirt/-/issues/320
Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
---
src/qemu/qemu_tpm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c
index 0b77ce2bc7..121f98174c 100644
--- a/src/qemu/qemu_tpm.c
+++ b/src/qemu/qemu_tpm.c
@@ -186,7 +186,8 @@ qemuTPMEmulatorCreateStorage(virDomainTPMDef *tpm,

    *created = false;

-    if (!virFileExists(storagepath))
+    if (!virFileExists(storagepath) ||
+        virDirIsEmpty(storagepath, false) > 0)
        *created = true;


This means we will possibly delete a directory we did not create on
error in qemuTPMEmulatorBuildCommand. That is possibly harmless,
but I would call virDirIsEmpty with hidden=true, to make sure
we don't delete a non-empty directory.

Reviewed-by: Ján Tomko <jtomko@xxxxxxxxxx>

Jano


    if (virDirCreate(storagepath, 0700, swtpm_user, swtpm_group,
--
2.41.0

Attachment: signature.asc
Description: PGP signature


[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