diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c index bf29a96f9bc3883ac126ec3c17198b089774e4ed..1a6d6e67f27a97c8e2187153909dd3aa89a2f602 100644 --- a/src/parallels/parallels_driver.c +++ b/src/parallels/parallels_driver.c @@ -948,6 +948,7 @@ parallelsDomainUndefineFlags(virDomainPtr domain, { parallelsConnPtr privconn = domain->conn->privateData; virDomainObjPtr dom = NULL; + int ret; virCheckFlags(0, -1); @@ -957,7 +958,11 @@ parallelsDomainUndefineFlags(virDomainPtr domain, return -1; } - return prlsdkUnregisterDomain(privconn, dom); + ret = prlsdkUnregisterDomain(privconn, dom); + if (ret) + virObjectUnlock(dom); + + return ret; } static int