[PATCHv2 0/1] Use g_autoptr and g_autofree in cpu.c

return NULL for all the failure cases for the function virCPUDataParse(). Previous discussion can be found at https://www.redhat.com/archives/libvir-list/2020-April/msg00191.html Seeteena Thoufeek (1): cpu: Use g_autoptr and g_autofree in cpu.c src/cpu/cpu.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) -- 1.8.3.1

Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com> --- src/cpu/cpu.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/cpu/cpu.c b/src/cpu/cpu.c index 631c755..d502c02 100644 --- a/src/cpu/cpu.c +++ b/src/cpu/cpu.c @@ -772,40 +772,35 @@ virCPUDataPtr virCPUDataParse(const char *xmlStr) { struct cpuArchDriver *driver; - xmlDocPtr xml = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlDoc) xml = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; virCPUDataPtr data = NULL; - char *arch = NULL; + g_autofree char *arch = NULL; VIR_DEBUG("xmlStr=%s", xmlStr); if (!(xml = virXMLParseStringCtxt(xmlStr, _("CPU data"), &ctxt))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("cannot parse CPU data")); - goto cleanup; + return NULL; } if (!(arch = virXPathString("string(/cpudata/@arch)", ctxt))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing CPU data architecture")); - goto cleanup; + return NULL; } if (!(driver = cpuGetSubDriverByName(arch))) - goto cleanup; + return NULL; if (!driver->dataParse) { virReportError(VIR_ERR_NO_SUPPORT, _("cannot parse %s CPU data"), arch); - goto cleanup; + return NULL; } data = driver->dataParse(ctxt); - - cleanup: - xmlXPathFreeContext(ctxt); - xmlFreeDoc(xml); - VIR_FREE(arch); return data; } -- 1.8.3.1

On a Monday in 2020, Seeteena Thoufeek wrote:
Signed-off-by: Seeteena Thoufeek <s1seetee@linux.vnet.ibm.com> --- src/cpu/cpu.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> and pushed Jano
participants (2)
-
Ján Tomko
-
Seeteena Thoufeek