[PATCH] qemu: Do not keep swtmp pidfile around after stopping

Martin Kletzander mkletzan at redhat.com
Thu Aug 18 14:20:56 UTC 2022


Just like the socket, remove the pidfile when TPM emulator is being stopped.  In
order to make this a bit cleaner, try to remove it even if swtpm_ioctl does not
exist.

Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
---
 src/qemu/qemu_tpm.c | 31 ++++++++++++++-----------------
 1 file changed, 14 insertions(+), 17 deletions(-)

diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c
index 584c787b700b..50e8c19f3a0b 100644
--- a/src/qemu/qemu_tpm.c
+++ b/src/qemu/qemu_tpm.c
@@ -795,28 +795,25 @@ qemuTPMEmulatorStop(const char *swtpmStateDir,
     g_autofree char *pathname = NULL;
     g_autofree char *errbuf = NULL;
     g_autofree char *swtpm_ioctl = virTPMGetSwtpmIoctl();
+    g_autofree char *pidfile = qemuTPMEmulatorPidFileBuildPath(swtpmStateDir,
+                                                               shortName);
+    if (swtpm_ioctl &&
+        (pathname = qemuTPMEmulatorSocketBuildPath(swtpmStateDir, shortName)) &&
+        virFileExists(pathname) &&
+        (cmd = virCommandNew(swtpm_ioctl))) {
 
-    if (!swtpm_ioctl)
-        return;
-
-    if (!(pathname = qemuTPMEmulatorSocketBuildPath(swtpmStateDir, shortName)))
-        return;
-
-    if (!virFileExists(pathname))
-        return;
-
-    cmd = virCommandNew(swtpm_ioctl);
-    if (!cmd)
-        return;
+        virCommandAddArgList(cmd, "--unix", pathname, "-s", NULL);
 
-    virCommandAddArgList(cmd, "--unix", pathname, "-s", NULL);
+        virCommandSetErrorBuffer(cmd, &errbuf);
 
-    virCommandSetErrorBuffer(cmd, &errbuf);
+        ignore_value(virCommandRun(cmd, NULL));
 
-    ignore_value(virCommandRun(cmd, NULL));
+        /* clean up the socket */
+        unlink(pathname);
+    }
 
-    /* clean up the socket */
-    unlink(pathname);
+    if (pidfile)
+        virPidFileDeletePath(pidfile);
 }
 
 
-- 
2.37.2



More information about the libvir-list mailing list