[libvirt] [PATCH] conf: sanitize tap and vhost paths

Michal Privoznik mprivozn at redhat.com
Tue Sep 23 11:32:49 UTC 2014


On 22.09.2014 16:34, Martin Kletzander wrote:
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
>   src/conf/domain_conf.c | 11 +++++++++--
>   1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index bb4a4cb..9cc118c 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -7065,8 +7065,15 @@ virDomainNetDefParseXML(virDomainXMLOptionPtr xmlopt,
>                   if (virNetDevVlanParse(cur, ctxt, &def->vlan) < 0)
>                       goto error;
>               } else if (xmlStrEqual(cur->name, BAD_CAST "backend")) {
> -                def->backend.tap = virXMLPropString(cur, "tap");
> -                def->backend.vhost = virXMLPropString(cur, "vhost");
> +                char *tmp = NULL;
> +
> +                if ((tmp = virXMLPropString(cur, "tap")))
> +                    def->backend.tap = virFileSanitizePath(tmp);
> +                VIR_FREE(tmp);
> +
> +                if ((tmp = virXMLPropString(cur, "vhost")))
> +                    def->backend.vhost = virFileSanitizePath(tmp);
> +                VIR_FREE(tmp);
>               }
>           }
>           cur = cur->next;
>

ACK. Although I've identified more places that need fixing, e.g. rom in 
virDomainDeviceInfoParseXML(). But that's not a show stopper for this one.

Michal




More information about the libvir-list mailing list