From 83cf648cedebb265279416b9219bafb0719dda6b Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Thu, 10 Feb 2022 16:17:20 +0100 Subject: [PATCH] ch_process: Check whether domain is already running before starting it There are two places where a domain can be started in CH driver: chDomainCreateXML() and chDomainCreateWithFlags(). Both acquire a job (good), but neither of them checks whether the domain isn't already running. This is wrong. Fortunately, both function call the very same virCHProcessStart() rendering it the best place for such check. Signed-off-by: Michal Privoznik Reviewed-by: Tim Wiederhake --- src/ch/ch_process.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ch/ch_process.c b/src/ch/ch_process.c index 6d9a286e8a..00d94ddcbe 100644 --- a/src/ch/ch_process.c +++ b/src/ch/ch_process.c @@ -470,6 +470,12 @@ virCHProcessStart(virCHDriver *driver, g_autofree int *nicindexes = NULL; size_t nnicindexes = 0; + if (virDomainObjIsActive(vm)) { + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("VM is already active")); + return -1; + } + if (!priv->monitor) { /* And we can get the first monitor connection now too */ if (!(priv->monitor = virCHProcessConnectMonitor(driver, vm))) { -- 2.39.5