From 23482e4b1ed4f900728a66e5d8c0afd9a56afd2d Mon Sep 17 00:00:00 2001 From: Pavel Hrdina Date: Fri, 18 Aug 2017 15:15:28 +0200 Subject: [PATCH] conf: error out for multiple log elements while parsing chardev Remove check whether a variable was already set because the element is parsed only once now. Signed-off-by: Pavel Hrdina --- src/conf/domain_conf.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 1c3034db05..7431de20da 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -10925,6 +10925,7 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def, char *append = NULL; char *haveTLS = NULL; char *tlsFromConfig = NULL; + bool logParsed = false; int sourceParsed = 0; for (; cur; cur = cur->next) { @@ -11029,10 +11030,15 @@ virDomainChrSourceDefParseXML(virDomainChrSourceDefPtr def, ctxt->node = saved_node; } } else if (virXMLNodeNameEqual(cur, "log")) { - if (!logfile) - logfile = virXMLPropString(cur, "file"); - if (!logappend) - logappend = virXMLPropString(cur, "append"); + if (logParsed) { + virReportError(VIR_ERR_XML_ERROR, "%s", + _("only one protocol element is allowed for " + "character device")); + goto error; + } + logParsed = true; + logfile = virXMLPropString(cur, "file"); + logappend = virXMLPropString(cur, "append"); } else if (virXMLNodeNameEqual(cur, "protocol")) { if (!protocol) protocol = virXMLPropString(cur, "type"); -- GitLab