[libvirt PATCH 6/9] cpu: Validate XML
Peter Krempa
pkrempa at redhat.com
Tue Sep 29 09:12:39 UTC 2020
On Mon, Sep 21, 2020 at 15:07:29 +0200, Tim Wiederhake wrote:
The summary of the commit is misleading. This patch doesn't do any
validation but rather wires in the validation code to various places
without enabling it.
> Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
> ---
[...]
> diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c
> index dea950ce68..40d8da4a8e 100644
> --- a/src/conf/cpu_conf.c
> +++ b/src/conf/cpu_conf.c
> @@ -20,9 +20,11 @@
>
> #include <config.h>
>
> +#include "configmake.h"
This is suspicious. Why did you add this line?
> #include "virerror.h"
> #include "viralloc.h"
> #include "virbuffer.h"
> +#include "virfile.h"
> #include "cpu_conf.h"
> #include "domain_conf.h"
> #include "virstring.h"
[...]
> @@ -348,6 +352,22 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt,
> return -1;
> }
>
> + if (validateXML) {
> + g_autofree char *schemafile = NULL;
> +
> + if (!(schemafile = virFileFindResource("cpu.rng",
> + abs_top_srcdir "/docs/schemas",
> + PKGDATADIR "/schemas")))
> + return -1;
> +
> + if (virXMLValidateNodeAgainstSchema(schemafile, ctxt->doc,
> + ctxt->node) < 0) {
> + virReportError(VIR_ERR_XML_ERROR, "%s",
> + _("'cpu' element is not valid"));
virXMLValidateNodeAgainstSchema calls virXMLValidateAgainstSchema which
calls virXMLValidatorValidate which already reports an error.
> + return -1;
> + }
> + }
> +
> def = virCPUDefNew();
>
> if (type == VIR_CPU_TYPE_AUTO) {
More information about the libvir-list
mailing list