From: Peter Krempa Date: Fri, 18 Jul 2014 13:38:48 +0000 (+0200) Subject: qemu: snapshot: Reject revertion from clearly bad states X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=49a3a649a85f9d3d478be355aa8694bce889586a;p=libvirt.git qemu: snapshot: Reject revertion from clearly bad states Report errors on some states snapshots done by qemu should never reach --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 7ab0f813e7..17829134ce 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14158,11 +14158,8 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot, case VIR_DOMAIN_SHUTDOWN: case VIR_DOMAIN_SHUTOFF: case VIR_DOMAIN_CRASHED: - case VIR_DOMAIN_NOSTATE: - case VIR_DOMAIN_BLOCKED: /* XXX: The following one is clearly wrong! */ case VIR_DOMAIN_PMSUSPENDED: - case VIR_DOMAIN_LAST: /* Transitions 1, 4, 7 */ /* Newer qemu -loadvm refuses to revert to the state of a snapshot * created by qemu-img snapshot -c. If the domain is running, we @@ -14227,6 +14224,15 @@ static int qemuDomainRevertToSnapshot(virDomainSnapshotPtr snapshot, } } break; + + case VIR_DOMAIN_NOSTATE: + case VIR_DOMAIN_BLOCKED: + case VIR_DOMAIN_LAST: + virReportError(VIR_ERR_INTERNAL_ERROR, + _("Invalid target domain state '%s'. Refusing " + "snapshot reversion"), + virDomainStateTypeToString(snap->def->state)); + goto cleanup; } ret = 0;