diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 6102f7983f58028935a76b2ccd90cc2b35d89c57..f38b0f3810309b9ed9c5849aba80b7e50700bf5f 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 918a77dabd2965cb6ed9c74a2bc9b702633a93e3..54d7bd74f3be0bc839321c24f3494415a0551bad 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 7044266bb517b741332c6bf2894cccc560d7b754..d9dca74853873a50ef17a99ed170e95ede21d1d6 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,