aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2010-04-27 22:35:32 +0200
committerJim Meyering <meyering@redhat.com>2010-04-29 11:16:04 +0200
commitba1072f0aca34dc3158d45f988bfd8a44dfa1f54 (patch)
tree125013963ae85997e1de2ad1c1b88914644df944
parentqemudDomainCreate: correct a slightly misdirected goto (diff)
downloadlibvirt-ba1072f0aca34dc3158d45f988bfd8a44dfa1f54.tar.gz
libvirt-ba1072f0aca34dc3158d45f988bfd8a44dfa1f54.tar.bz2
libvirt-ba1072f0aca34dc3158d45f988bfd8a44dfa1f54.zip
qemuDomainSnapshotCreateXML: avoid NULL dereferences
* src/qemu/qemu_driver.c (qemuDomainSnapshotCreateXML): When setting "vm" to NULL, jump over vm-dereferencing code to "cleanup". (qemuDomainRevertToSnapshot): Likewise.
-rw-r--r--src/qemu/qemu_driver.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index cbd6b67c5..dbc6e2d4b 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -10875,8 +10875,10 @@ static virDomainSnapshotPtr qemuDomainSnapshotCreateXML(virDomainPtr domain,
qemuDomainObjEnterMonitorWithDriver(driver, vm);
ret = qemuMonitorCreateSnapshot(priv->mon, def->name);
qemuDomainObjExitMonitorWithDriver(driver, vm);
- if (qemuDomainObjEndJob(vm) == 0)
+ if (qemuDomainObjEndJob(vm) == 0) {
vm = NULL;
+ goto cleanup;
+ }
if (ret < 0)
goto cleanup;
}
@@ -11205,6 +11207,7 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot,
if (qemuDomainObjEndJob(vm) > 0)
virDomainRemoveInactive(&driver->domains, vm);
vm = NULL;
+ goto cleanup;
}
}