From: Peter Krempa Date: Mon, 22 Nov 2021 16:26:40 +0000 (+0100) Subject: virSecurityDeviceLabelDefParseXML: Don't use 'virXPathStringLimit' X-Git-Tag: v7.10.0-rc1~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3a8f2633951ec0b1d3e1f36ffe9d4e328993edf;p=thirdparty%2Flibvirt.git virSecurityDeviceLabelDefParseXML: Don't use 'virXPathStringLimit' 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 --- 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,