diff --git a/src/locking/domain_lock.c b/src/locking/domain_lock.c index 771ed538db6937e635875953dcefeefd492585fb..feb3f983874a9f036f01d985c94fbf20f40b5f73 100644 --- a/src/locking/domain_lock.c +++ b/src/locking/domain_lock.c @@ -157,10 +157,13 @@ int virDomainLockProcessStart(virLockManagerPluginPtr plugin, virDomainObjPtr dom, bool paused) { - virLockManagerPtr lock = virDomainLockManagerNew(plugin, dom, true); + virLockManagerPtr lock; int ret; int flags = VIR_LOCK_MANAGER_ACQUIRE_RESTRICT; + if (!(lock = virDomainLockManagerNew(plugin, dom, true))) + return -1; + if (paused) flags |= VIR_LOCK_MANAGER_ACQUIRE_REGISTER_ONLY; @@ -175,9 +178,13 @@ int virDomainLockProcessPause(virLockManagerPluginPtr plugin, virDomainObjPtr dom, char **state) { - virLockManagerPtr lock = virDomainLockManagerNew(plugin, dom, true); - int ret = virLockManagerRelease(lock, state, 0); + virLockManagerPtr lock; + int ret; + + if (!(lock = virDomainLockManagerNew(plugin, dom, true))) + return -1; + ret = virLockManagerRelease(lock, state, 0); virLockManagerFree(lock); return ret; @@ -187,9 +194,13 @@ int virDomainLockProcessResume(virLockManagerPluginPtr plugin, virDomainObjPtr dom, const char *state) { - virLockManagerPtr lock = virDomainLockManagerNew(plugin, dom, true); - int ret = virLockManagerAcquire(lock, state, 0); + virLockManagerPtr lock; + int ret; + + if (!(lock = virDomainLockManagerNew(plugin, dom, true))) + return -1; + ret = virLockManagerAcquire(lock, state, 0); virLockManagerFree(lock); return ret; @@ -199,9 +210,13 @@ int virDomainLockProcessInquire(virLockManagerPluginPtr plugin, virDomainObjPtr dom, char **state) { - virLockManagerPtr lock = virDomainLockManagerNew(plugin, dom, true); - int ret = virLockManagerInquire(lock, state, 0); + virLockManagerPtr lock; + int ret; + if (!(lock = virDomainLockManagerNew(plugin, dom, true))) + return -1; + + ret = virLockManagerInquire(lock, state, 0); virLockManagerFree(lock); return ret; @@ -212,9 +227,12 @@ int virDomainLockDiskAttach(virLockManagerPluginPtr plugin, virDomainObjPtr dom, virDomainDiskDefPtr disk) { - virLockManagerPtr lock = virDomainLockManagerNew(plugin, dom, false); + virLockManagerPtr lock; int ret = -1; + if (!(lock = virDomainLockManagerNew(plugin, dom, false))) + return -1; + if (virDomainLockManagerAddDisk(lock, disk) < 0) goto cleanup; @@ -233,9 +251,12 @@ int virDomainLockDiskDetach(virLockManagerPluginPtr plugin, virDomainObjPtr dom, virDomainDiskDefPtr disk) { - virLockManagerPtr lock = virDomainLockManagerNew(plugin, dom, false); + virLockManagerPtr lock; int ret = -1; + if (!(lock = virDomainLockManagerNew(plugin, dom, false))) + return -1; + if (virDomainLockManagerAddDisk(lock, disk) < 0) goto cleanup; @@ -255,9 +276,12 @@ int virDomainLockLeaseAttach(virLockManagerPluginPtr plugin, virDomainObjPtr dom, virDomainLeaseDefPtr lease) { - virLockManagerPtr lock = virDomainLockManagerNew(plugin, dom, false); + virLockManagerPtr lock; int ret = -1; + if (!(lock = virDomainLockManagerNew(plugin, dom, false))) + return -1; + if (virDomainLockManagerAddLease(lock, lease) < 0) goto cleanup; @@ -276,9 +300,12 @@ int virDomainLockLeaseDetach(virLockManagerPluginPtr plugin, virDomainObjPtr dom, virDomainLeaseDefPtr lease) { - virLockManagerPtr lock = virDomainLockManagerNew(plugin, dom, false); + virLockManagerPtr lock; int ret = -1; + if (!(lock = virDomainLockManagerNew(plugin, dom, false))) + return -1; + if (virDomainLockManagerAddLease(lock, lease) < 0) goto cleanup;