[libvirt] [PATCH] qemu_conf: check for duplicate security drivers

Michal Privoznik mprivozn at redhat.com
Mon Jan 19 12:51:02 UTC 2015


On 19.01.2015 12:51, Ján Tomko wrote:
> Using the same driver multiple times is pointless and
> it can result in confusing errors:
> 
> $ virsh start test
> error: Failed to start domain test
> error: internal error: security label already defined for VM
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1153891
> ---
>  src/qemu/qemu_conf.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
> index 9539231..a24c5c5 100644
> --- a/src/qemu/qemu_conf.c
> +++ b/src/qemu/qemu_conf.c
> @@ -460,7 +460,7 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
>  
>      p = virConfGetValue(conf, "security_driver");
>      if (p && p->type == VIR_CONF_LIST) {
> -        size_t len;
> +        size_t len, j;
>          virConfValuePtr pp;
>  
>          /* Calc length and check items */
> @@ -476,6 +476,13 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
>              goto cleanup;
>  
>          for (i = 0, pp = p->list; pp; i++, pp = pp->next) {
> +            for (j = 0; j < i; j++) {
> +                if (STREQ(pp->str, cfg->securityDriverNames[j])) {
> +                    virReportError(VIR_ERR_CONF_SYNTAX,

Well, technically it's not a syntax error, but whatever. I guess we
don't have more appropriate error code.

> +                                   _("Duplicate security driver %s"), pp->str);
> +                    goto cleanup;
> +                }
> +            }
>              if (VIR_STRDUP(cfg->securityDriverNames[i], pp->str) < 0)
>                  goto cleanup;
>          }
> 


ACK

Michal




More information about the libvir-list mailing list