From d558fb34fd0e410fdaeb993ea43ba733bfb5c528 Mon Sep 17 00:00:00 2001 From: Martin Kletzander Date: Sun, 3 Apr 2016 21:51:29 +0200 Subject: [PATCH] qemu: Clear generated private paths The paths have the domain ID in them. Without cleaning them, they would contain the same ID even after multiple restarts. That could cause various problems, e.g. with access. Add function qemuDomainClearPrivatePaths() for this as a counterpart of qemuDomainSetPrivatePaths(). Signed-off-by: Martin Kletzander --- src/qemu/qemu_domain.c | 10 ++++++++++ src/qemu/qemu_domain.h | 1 + src/qemu/qemu_process.c | 2 ++ 3 files changed, 13 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 6102f7983f..f38b0f3810 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -562,6 +562,16 @@ qemuDomainSetPrivatePaths(virQEMUDriverPtr driver, } +void +qemuDomainClearPrivatePaths(virDomainObjPtr vm) +{ + qemuDomainObjPrivatePtr priv = vm->privateData; + + VIR_FREE(priv->libDir); + VIR_FREE(priv->channelTargetDir); +} + + static void * qemuDomainObjPrivateAlloc(void) { diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 918a77dabd..54d7bd74f3 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -554,6 +554,7 @@ int qemuDomainNetVLAN(virDomainNetDefPtr def); int qemuDomainSetPrivatePaths(virQEMUDriverPtr driver, virDomainObjPtr vm); +void qemuDomainClearPrivatePaths(virDomainObjPtr vm); virDomainDiskDefPtr qemuDomainDiskByName(virDomainDefPtr def, const char *name); diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 7044266bb5..d9dca74853 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5832,6 +5832,8 @@ void qemuProcessStop(virQEMUDriverPtr driver, virFileDeleteTree(priv->libDir); virFileDeleteTree(priv->channelTargetDir); + qemuDomainClearPrivatePaths(vm); + ignore_value(virDomainChrDefForeach(vm->def, false, qemuProcessCleanupChardevDevice,