mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
conf: Rework virDomainSEVDefParseXML()
Firstly, this function changes node for relative XPaths but doesn't restore the original one in case VIR_ALLOC(def) fails. Secondly, @type is leaked. Thirdly, dh-cert and session attributes are strdup()-ed needlessly, virXPathString already does that so we can use the retval immediately. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
84e4046cd7
commit
4817687a7d
@ -15849,17 +15849,16 @@ static virDomainSevDefPtr
|
||||
virDomainSEVDefParseXML(xmlNodePtr sevNode,
|
||||
xmlXPathContextPtr ctxt)
|
||||
{
|
||||
char *tmp = NULL;
|
||||
char *type = NULL;
|
||||
xmlNodePtr save = ctxt->node;
|
||||
virDomainSevDefPtr def;
|
||||
unsigned long policy;
|
||||
|
||||
ctxt->node = sevNode;
|
||||
|
||||
if (VIR_ALLOC(def) < 0)
|
||||
return NULL;
|
||||
|
||||
ctxt->node = sevNode;
|
||||
|
||||
if (!(type = virXMLPropString(sevNode, "type"))) {
|
||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||
_("missing launch security type"));
|
||||
@ -15899,29 +15898,18 @@ virDomainSEVDefParseXML(xmlNodePtr sevNode,
|
||||
}
|
||||
|
||||
def->policy = policy;
|
||||
def->dh_cert = virXPathString("string(./dhCert)", ctxt);
|
||||
def->session = virXPathString("string(./session)", ctxt);
|
||||
|
||||
if ((tmp = virXPathString("string(./dhCert)", ctxt))) {
|
||||
if (VIR_STRDUP(def->dh_cert, tmp) < 0)
|
||||
goto error;
|
||||
|
||||
VIR_FREE(tmp);
|
||||
}
|
||||
|
||||
if ((tmp = virXPathString("string(./session)", ctxt))) {
|
||||
if (VIR_STRDUP(def->session, tmp) < 0)
|
||||
goto error;
|
||||
|
||||
VIR_FREE(tmp);
|
||||
}
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(type);
|
||||
ctxt->node = save;
|
||||
return def;
|
||||
|
||||
error:
|
||||
VIR_FREE(tmp);
|
||||
virDomainSEVDefFree(def);
|
||||
ctxt->node = save;
|
||||
return NULL;
|
||||
def = NULL;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
static virDomainMemoryDefPtr
|
||||
|
Loading…
x
Reference in New Issue
Block a user