From: Peter Krempa Date: Tue, 18 Oct 2022 11:47:31 +0000 (+0200) Subject: conf: storage: Add support for validating storage vol XML to virStorageVolDefParse X-Git-Tag: v8.10.0-rc1~267 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=563ef19f9b1dd1e5dd7206f58e853af17b69dfa3;p=thirdparty%2Flibvirt.git conf: storage: Add support for validating storage vol XML to virStorageVolDefParse Introduce the VIR_VOL_XML_PARSE_VALIDATE parser flag and wire it up into the validator. Signed-off-by: Peter Krempa Reviewed-by: Jonathon Jongsma --- diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 0f4fe1451e..72c53872cb 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1407,9 +1407,10 @@ virStorageVolDefParse(virStoragePoolDef *pool, { g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; + bool validate = flags & VIR_VOL_XML_PARSE_VALIDATE; if (!(xml = virXMLParse(filename, xmlStr, _("(storage_volume_definition)"), - "volume", &ctxt, NULL, false))) + "volume", &ctxt, "storagevol.rng", validate))) return NULL; return virStorageVolDefParseXML(pool, ctxt, flags); diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h index bbfdbc2f2f..fc67957cfe 100644 --- a/src/conf/storage_conf.h +++ b/src/conf/storage_conf.h @@ -284,6 +284,8 @@ typedef enum { VIR_VOL_XML_PARSE_NO_CAPACITY = 1 << 0, /* do not require volume capacity if the volume has a backing store */ VIR_VOL_XML_PARSE_OPT_CAPACITY = 1 << 1, + /* validate the XML against the RNG schema */ + VIR_VOL_XML_PARSE_VALIDATE = 1 << 2, } virStorageVolDefParseFlags; virStorageVolDef *