mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 14:15:28 +00:00
snapshot: conf: Enforce absolute paths on disk and memory images
RNG schema as well as the qemu driver requires absolute paths for memory and disk snapshot image files but the XML parser was not enforcing it. Add checks to avoid problems in qemu where the configuration it creates is invalid. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1126329
This commit is contained in:
parent
d26e810838
commit
29bb066915
@ -177,6 +177,16 @@ virDomainSnapshotDiskDefParseXML(xmlNodePtr node,
|
||||
}
|
||||
}
|
||||
|
||||
/* validate that the passed path is absolute */
|
||||
if (virStorageSourceIsLocalStorage(def->src) &&
|
||||
def->src->path &&
|
||||
def->src->path[0] != '/') {
|
||||
virReportError(VIR_ERR_XML_ERROR,
|
||||
_("disk snapshot image path '%s' must be absolute"),
|
||||
def->src->path);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!def->snapshot && (def->src->path || def->src->format))
|
||||
def->snapshot = VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL;
|
||||
|
||||
@ -327,6 +337,14 @@ virDomainSnapshotDefParse(xmlXPathContextPtr ctxt,
|
||||
def->file = memoryFile;
|
||||
memoryFile = NULL;
|
||||
|
||||
/* verify that memory path is absolute */
|
||||
if (def->file && def->file[0] != '/') {
|
||||
virReportError(VIR_ERR_XML_ERROR,
|
||||
_("memory snapshot file path (%s) must be absolute"),
|
||||
def->file);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if ((n = virXPathNodeSet("./disks/*", ctxt, &nodes)) < 0)
|
||||
goto cleanup;
|
||||
if (flags & VIR_DOMAIN_SNAPSHOT_PARSE_DISKS) {
|
||||
|
Loading…
Reference in New Issue
Block a user