qemu: Forbid snapshot names starting with '.'

Forbid the names to match the loading procedure of snapshots.
This commit is contained in:
Peter Krempa 2013-01-21 22:09:33 +01:00
parent 074b6d45b0
commit f4ece17665

View File

@ -11347,16 +11347,26 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain,
parse_flags)))
goto cleanup;
/* reject snapshot names containing slashes as snapshot definitions are
* saved in files containing the name */
if (!(flags & VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA) &&
strchr(def->name, '/')) {
/* reject snapshot names containing slashes or starting with dot as
* snapshot definitions are saved in files named by the snapshot name */
if (!(flags & VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA)) {
if (strchr(def->name, '/')) {
virReportError(VIR_ERR_XML_DETAIL,
_("invalid snapshot name '%s': name can't contain '/'"),
_("invalid snapshot name '%s': "
"name can't contain '/'"),
def->name);
goto cleanup;
}
if (def->name[0] == '.') {
virReportError(VIR_ERR_XML_DETAIL,
_("invalid snapshot name '%s': "
"name can't start with '.'"),
def->name);
goto cleanup;
}
}
/* reject the VIR_DOMAIN_SNAPSHOT_CREATE_LIVE flag where not supported */
if (flags & VIR_DOMAIN_SNAPSHOT_CREATE_LIVE &&
(!virDomainObjIsActive(vm) ||