From f3a8f2633951ec0b1d3e1f36ffe9d4e328993edf Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 22 Nov 2021 17:26:40 +0100 Subject: [PATCH] virSecurityDeviceLabelDefParseXML: Don't use 'virXPathStringLimit' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit virXPathStringLimit doesn't give callers a way to differentiate between the queried XPath being empty and the length limit being exceeded. This means that the callers is completely ignoring the error. Move the length check into the caller. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/conf/domain_conf.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 57ab4c060b..13395a7023 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -8065,9 +8065,10 @@ virSecurityDeviceLabelDefParseXML(virSecurityDeviceLabelDef ***seclabels_rtn, ignore_value(virStringParseYesNo(labelskip, &seclabels[i]->labelskip)); ctxt->node = list[i]; - label = virXPathStringLimit("string(./label)", - VIR_SECURITY_LABEL_BUFLEN-1, ctxt); - seclabels[i]->label = g_steal_pointer(&label); + label = virXPathString("string(./label)", ctxt); + + if (label && strlen(label) < VIR_SECURITY_LABEL_BUFLEN) + seclabels[i]->label = g_steal_pointer(&label); if (seclabels[i]->label && !seclabels[i]->relabel) { virReportError(VIR_ERR_XML_ERROR,