From f4ece17665138cd147b0a466b86e95f4149854b7 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 21 Jan 2013 22:09:33 +0100 Subject: [PATCH] qemu: Forbid snapshot names starting with '.' Forbid the names to match the loading procedure of snapshots. --- src/qemu/qemu_driver.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3a54228389..72907d212f 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -11347,14 +11347,24 @@ 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, '/')) { - virReportError(VIR_ERR_XML_DETAIL, - _("invalid snapshot name '%s': name can't contain '/'"), - def->name); - goto cleanup; + /* 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 '/'"), + 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 */