From d16704fd60f55251bb442d3a3efdf8dc494ce2e5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A1n=20Tomko?= Date: Mon, 19 Jan 2015 12:46:37 +0100 Subject: [PATCH] qemu_conf: check for duplicate security drivers 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 9539231ec9..a24c5c5c59 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, + _("Duplicate security driver %s"), pp->str); + goto cleanup; + } + } if (VIR_STRDUP(cfg->securityDriverNames[i], pp->str) < 0) goto cleanup; } -- 2.47.2