From b7eb93d486c0c855e6a21c5f67ed658a52a7e8fa Mon Sep 17 00:00:00 2001 Message-Id: From: Martin Kletzander Date: Sun, 24 Jul 2016 09:43:35 +0200 Subject: [PATCH] lxc: Don't crash by forgetting to ref transient domains So commit 306b3a8504 tried mimicking behaviour of commit 540c339a25, but added a virObjectRef(vm) only after virDomainObjListAdd() in lxcDomainDefineXMLFlags() and not in lxcDomainCreateXMLWithFiles(). That way undefining a domain that was started with different XML than defined will leave the domain object in a state with not enough references to then remove it. Hence any lxcDomainDestroyFlags() called afterwards crashes the daemon. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1351057 Signed-off-by: Martin Kletzander (cherry picked from commit e4200bbb9d9bbc58a51ca55c6073146126447afb) Signed-off-by: Martin Kletzander --- src/lxc/lxc_driver.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index a3fa770..80b7a5c 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -1249,6 +1249,7 @@ lxcDomainCreateXMLWithFiles(virConnectPtr conn, VIR_DOMAIN_OBJ_LIST_ADD_CHECK_LIVE, NULL))) goto cleanup; + virObjectRef(vm); def = NULL; if (virLXCDomainObjBeginJob(driver, vm, LXC_JOB_MODIFY) < 0) { -- 2.9.2