[libvirt] [PATCH] util: check for an illegal character in a XML namespace prefix

Michal Privoznik mprivozn at redhat.com
Fri Dec 5 11:57:16 UTC 2014


On 04.12.2014 14:37, Erik Skultety wrote:
> When user tries to insert element metadata providing a namespace
> declaration as well, currently we insert the element without any validation
> check for XML prefix (if provided). The next VM start would then
> fail with parse error. This patch fixes this issue by adding a call to
> xmlValidateNCName function to check for illegal characters in the
> prefix.
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1143921
> ---
>   src/util/virxml.c | 6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/src/util/virxml.c b/src/util/virxml.c
> index 7f591fb..93f8590 100644
> --- a/src/util/virxml.c
> +++ b/src/util/virxml.c
> @@ -1066,6 +1066,12 @@ virXMLInjectNamespace(xmlNodePtr node,
>   {
>       xmlNsPtr ns;
>
> +    if (xmlValidateNCName((const unsigned char *)key, 1) != 0) {
> +        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
> +                       _("failed to validate prefix for a new XML namespace"));
> +        return -1;
> +    }
> +
>       if (!(ns = xmlNewNs(node, (const unsigned char *)uri, (const unsigned char *)key))) {
>           virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
>                          _("failed to create a new XML namespace"));
>

ACKed and pushed.

Michal




More information about the libvir-list mailing list