[libvirt] [PATCH 2/2] Forbid new-line char in name of new networks

Michal Privoznik mprivozn at redhat.com
Tue Oct 18 01:47:13 UTC 2016


On 14.10.2016 04:53, Sławek Kapłoński wrote:
> New line character in name of network is now forbidden because it
> mess virsh output and can be confusing for users.
> Validation of name is done in network driver, after parsing XML to avoid
> problems with dissappeared network which was already created with
> new-line char in name.
> 
> Closes-Bug: https://bugzilla.redhat.com/show_bug.cgi?id=818064
> ---
>  src/network/bridge_driver.c | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
> index b2af482..df85884 100644
> --- a/src/network/bridge_driver.c
> +++ b/src/network/bridge_driver.c
> @@ -2973,6 +2973,12 @@ networkValidate(virNetworkDriverStatePtr driver,
>      bool bandwidthAllowed = true;
>      bool usesInterface = false, usesAddress = false;
>  
> +    if (virStringHasChars(def->name, "\n")) {
> +        virReportError(VIR_ERR_XML_ERROR,
> +                       _("name %s cannot contain '\\n'"), def->name);
> +        return -1;
> +    }
> +
>      /* Only the three L3 network types that are configured by libvirt
>       * need to have a bridge device name / mac address provided
>       */
> 

Good, you found the best place to have this check. Impressive. But if we
go with my suggestion, this can be reduced to:

if (virStringHasChars(def->name, "\n"))
  return -1;


Also, any plans on turning some other checks in other drivers into using
this wrapper?

Michal




More information about the libvir-list mailing list