[libvirt PATCH 0/6] Use g_auto for more libxml2 functions (glib chronicles)

Use g_auto for the remaining users of xmlFreeDoc and xmlXPathFreeContext. Also, remove redundant labels where easily possible. Ján Tomko (6): conf: virCPUDefListParse: reduce scope of variables conf: refactor virNetworkLoadState Use g_auto for xmlXPathContext everywhere Use g_auto for xmlFreeDoc everywhere Use g_autofree in affected functions Remove redundant labels src/conf/checkpoint_conf.c | 3 +-- src/conf/cpu_conf.c | 30 ++++++++------------------ src/conf/domain_conf.c | 6 ++---- src/conf/interface_conf.c | 3 +-- src/conf/node_device_conf.c | 3 +-- src/conf/nwfilter_conf.c | 3 +-- src/conf/secret_conf.c | 3 +-- src/conf/snapshot_conf.c | 3 +-- src/conf/storage_conf.c | 6 ++---- src/conf/virnetworkobj.c | 37 +++++++++++--------------------- src/conf/virnetworkportdef.c | 16 +++++--------- src/conf/virnwfilterbindingdef.c | 16 +++++--------- src/conf/virnwfilterbindingobj.c | 16 +++++--------- src/conf/virsavecookie.c | 20 ++++++----------- src/conf/virstorageobj.c | 21 +++++++----------- src/esx/esx_vi.c | 4 +--- src/libxl/libxl_migration.c | 14 ++++-------- src/qemu/qemu_capabilities.c | 6 ++---- src/qemu/qemu_migration_cookie.c | 15 ++++--------- src/security/virt-aa-helper.c | 23 +++++++------------- src/storage/storage_util.c | 23 +++++++------------- src/test/test_driver.c | 17 +++++---------- src/util/virxml.c | 3 +-- src/vbox/vbox_snapshot_conf.c | 21 ++++++------------ src/vz/vz_driver.c | 10 +++------ src/vz/vz_sdk.c | 6 ++---- tests/cputest.c | 35 +++++++++++------------------- tests/metadatatest.c | 22 ++++++------------- tests/qemucaps2xmltest.c | 8 ++----- tests/virnetdevbandwidthtest.c | 6 ++---- 30 files changed, 129 insertions(+), 270 deletions(-) -- 2.31.1

Move 'ctxt' and 'doc' inside the loop and mark them with g_auto. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/cpu_conf.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 58d04df1b8..44e62712c5 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -1126,8 +1126,6 @@ virCPUDefListParse(const char **xmlCPUs, unsigned int ncpus, virCPUType cpuType) { - xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; virCPUDef **cpus = NULL; size_t i; @@ -1152,24 +1150,20 @@ virCPUDefListParse(const char **xmlCPUs, cpus = g_new0(virCPUDef *, ncpus + 1); for (i = 0; i < ncpus; i++) { + g_autoptr(xmlDoc) doc = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; + if (!(doc = virXMLParseStringCtxt(xmlCPUs[i], _("(CPU_definition)"), &ctxt))) goto error; if (virCPUDefParseXML(ctxt, NULL, cpuType, &cpus[i], false) < 0) goto error; - - xmlXPathFreeContext(ctxt); - xmlFreeDoc(doc); - ctxt = NULL; - doc = NULL; } return cpus; error: virCPUDefListFree(cpus); - xmlXPathFreeContext(ctxt); - xmlFreeDoc(doc); return NULL; } -- 2.31.1

Use g_auto where possible, reducing variable scope where applicable. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/virnetworkobj.c | 37 ++++++++++++------------------------- 1 file changed, 12 insertions(+), 25 deletions(-) diff --git a/src/conf/virnetworkobj.c b/src/conf/virnetworkobj.c index 2a2d94dc98..aa629af6f6 100644 --- a/src/conf/virnetworkobj.c +++ b/src/conf/virnetworkobj.c @@ -860,13 +860,13 @@ virNetworkLoadState(virNetworkObjList *nets, const char *name, virNetworkXMLOption *xmlopt) { - char *configFile = NULL; + g_autofree char *configFile = NULL; virNetworkDef *def = NULL; virNetworkObj *obj = NULL; - xmlDocPtr xml = NULL; - xmlNodePtr node = NULL, *nodes = NULL; - xmlXPathContextPtr ctxt = NULL; - virBitmap *classIdMap = NULL; + g_autoptr(xmlDoc) xml = NULL; + xmlNodePtr node = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; + g_autoptr(virBitmap) classIdMap = NULL; unsigned long long floor_sum_val = 0; unsigned int taint = 0; int n; @@ -903,18 +903,16 @@ virNetworkLoadState(virNetworkObjList *nets, if (virXMLNodeNameEqual(node, "networkstatus")) { /* Newer network status file. Contains useful * info which are not to be found in bare config XML */ - char *classIdStr = NULL; - char *floor_sum = NULL; + g_autofree char *classIdStr = NULL; + g_autofree char *floor_sum = NULL; + g_autofree xmlNodePtr *nodes = NULL; ctxt->node = node; if ((classIdStr = virXPathString("string(./class_id[1]/@bitmap)", ctxt))) { - if (!(classIdMap = virBitmapParseUnlimited(classIdStr))) { - VIR_FREE(classIdStr); + if (!(classIdMap = virBitmapParseUnlimited(classIdStr))) goto error; - } } - VIR_FREE(classIdStr); floor_sum = virXPathString("string(./floor[1]/@sum)", ctxt); if (floor_sum && @@ -922,31 +920,26 @@ virNetworkLoadState(virNetworkObjList *nets, virReportError(VIR_ERR_INTERNAL_ERROR, _("Malformed 'floor_sum' attribute: %s"), floor_sum); - VIR_FREE(floor_sum); goto error; } - VIR_FREE(floor_sum); if ((n = virXPathNodeSet("./taint", ctxt, &nodes)) < 0) goto error; for (i = 0; i < n; i++) { - char *str = virXMLPropString(nodes[i], "flag"); + g_autofree char *str = virXMLPropString(nodes[i], "flag"); if (str) { int flag = virNetworkTaintTypeFromString(str); if (flag < 0) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Unknown taint flag %s"), str); - VIR_FREE(str); goto error; } - VIR_FREE(str); /* Compute taint mask here. The network object does not * exist yet, so we can't use virNetworkObjtTaint. */ taint |= (1 << flag); } } - VIR_FREE(nodes); } /* create the object */ @@ -958,7 +951,7 @@ virNetworkLoadState(virNetworkObjList *nets, /* assign status data stored in the network object */ if (classIdMap) { virBitmapFree(obj->classIdMap); - obj->classIdMap = classIdMap; + obj->classIdMap = g_steal_pointer(&classIdMap); } if (floor_sum_val > 0) @@ -967,17 +960,11 @@ virNetworkLoadState(virNetworkObjList *nets, obj->taint = taint; obj->active = true; /* network with a state file is by definition active */ - cleanup: - VIR_FREE(configFile); - xmlFreeDoc(xml); - xmlXPathFreeContext(ctxt); return obj; error: - VIR_FREE(nodes); - virBitmapFree(classIdMap); virNetworkDefFree(def); - goto cleanup; + return NULL; } -- 2.31.1

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/cpu_conf.c | 3 +-- src/conf/virnetworkportdef.c | 3 +-- src/conf/virnwfilterbindingdef.c | 3 +-- src/conf/virnwfilterbindingobj.c | 3 +-- src/conf/virsavecookie.c | 3 +-- src/conf/virstorageobj.c | 3 +-- src/esx/esx_vi.c | 4 +--- src/libxl/libxl_migration.c | 3 +-- src/qemu/qemu_capabilities.c | 3 +-- src/qemu/qemu_migration_cookie.c | 3 +-- src/security/virt-aa-helper.c | 3 +-- src/storage/storage_util.c | 3 +-- src/test/test_driver.c | 7 ++----- src/vbox/vbox_snapshot_conf.c | 9 +++------ src/vz/vz_driver.c | 3 +-- src/vz/vz_sdk.c | 3 +-- tests/cputest.c | 6 ++---- tests/metadatatest.c | 3 +-- tests/qemucaps2xmltest.c | 4 +--- tests/virnetdevbandwidthtest.c | 3 +-- 20 files changed, 24 insertions(+), 51 deletions(-) diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 44e62712c5..dac7af4bf4 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -282,7 +282,7 @@ virCPUDefParseXMLString(const char *xml, bool validateXML) { xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; int ret = -1; if (!xml) { @@ -300,7 +300,6 @@ virCPUDefParseXMLString(const char *xml, cleanup: xmlFreeDoc(doc); - xmlXPathFreeContext(ctxt); return ret; } diff --git a/src/conf/virnetworkportdef.c b/src/conf/virnetworkportdef.c index 9c2a6298d2..8da05353b7 100644 --- a/src/conf/virnetworkportdef.c +++ b/src/conf/virnetworkportdef.c @@ -268,7 +268,7 @@ virNetworkPortDef * virNetworkPortDefParseNode(xmlDocPtr xml, xmlNodePtr root) { - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; virNetworkPortDef *def = NULL; if (STRNEQ((const char *)root->name, "networkport")) { @@ -285,7 +285,6 @@ virNetworkPortDefParseNode(xmlDocPtr xml, def = virNetworkPortDefParseXML(ctxt); cleanup: - xmlXPathFreeContext(ctxt); return def; } diff --git a/src/conf/virnwfilterbindingdef.c b/src/conf/virnwfilterbindingdef.c index 4079fcdba4..45fa51a56c 100644 --- a/src/conf/virnwfilterbindingdef.c +++ b/src/conf/virnwfilterbindingdef.c @@ -159,7 +159,7 @@ virNWFilterBindingDef * virNWFilterBindingDefParseNode(xmlDocPtr xml, xmlNodePtr root) { - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; virNWFilterBindingDef *def = NULL; if (STRNEQ((const char *)root->name, "filterbinding")) { @@ -176,7 +176,6 @@ virNWFilterBindingDefParseNode(xmlDocPtr xml, def = virNWFilterBindingDefParseXML(ctxt); cleanup: - xmlXPathFreeContext(ctxt); return def; } diff --git a/src/conf/virnwfilterbindingobj.c b/src/conf/virnwfilterbindingobj.c index 11426e0a4d..20f33506fd 100644 --- a/src/conf/virnwfilterbindingobj.c +++ b/src/conf/virnwfilterbindingobj.c @@ -236,7 +236,7 @@ static virNWFilterBindingObj * virNWFilterBindingObjParseNode(xmlDocPtr doc, xmlNodePtr root) { - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; virNWFilterBindingObj *obj = NULL; if (STRNEQ((const char *)root->name, "filterbindingstatus")) { @@ -253,7 +253,6 @@ virNWFilterBindingObjParseNode(xmlDocPtr doc, obj = virNWFilterBindingObjParseXML(doc, ctxt); cleanup: - xmlXPathFreeContext(ctxt); return obj; } diff --git a/src/conf/virsavecookie.c b/src/conf/virsavecookie.c index 0e67bf1477..b7e1e7df93 100644 --- a/src/conf/virsavecookie.c +++ b/src/conf/virsavecookie.c @@ -80,7 +80,7 @@ virSaveCookieParseString(const char *xml, virSaveCookieCallbacks *saveCookie) { xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; int ret = -1; *obj = NULL; @@ -96,7 +96,6 @@ virSaveCookieParseString(const char *xml, ret = virSaveCookieParseNode(ctxt, obj, saveCookie); cleanup: - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); return ret; } diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 18a7718de9..91c63b2c45 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -1644,7 +1644,7 @@ virStoragePoolObjLoadState(virStoragePoolObjList *pools, char *stateFile = NULL; virStoragePoolObj *obj = NULL; xmlDocPtr xml = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; xmlNodePtr node = NULL; g_autoptr(virStoragePoolDef) def = NULL; @@ -1688,7 +1688,6 @@ virStoragePoolObjLoadState(virStoragePoolObjList *pools, cleanup: VIR_FREE(stateFile); xmlFreeDoc(xml); - xmlXPathFreeContext(ctxt); return obj; } diff --git a/src/esx/esx_vi.c b/src/esx/esx_vi.c index ebc6d9eb69..6f964cc470 100644 --- a/src/esx/esx_vi.c +++ b/src/esx/esx_vi.c @@ -1224,7 +1224,7 @@ esxVI_Context_Execute(esxVI_Context *ctx, const char *methodName, g_auto(virBuffer) buffer = VIR_BUFFER_INITIALIZER; esxVI_Fault *fault = NULL; g_autofree char *xpathExpression = NULL; - xmlXPathContextPtr xpathContext = NULL; + g_autoptr(xmlXPathContext) xpathContext = NULL; xmlNodePtr responseNode = NULL; if (!request || !response || *response) { @@ -1385,8 +1385,6 @@ esxVI_Context_Execute(esxVI_Context *ctx, const char *methodName, esxVI_Fault_Free(&fault); } - xmlXPathFreeContext(xpathContext); - return result; } diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index 4677f798fc..817252bce9 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -149,7 +149,7 @@ libxlMigrationEatCookie(const char *cookiein, { libxlMigrationCookie *mig = NULL; xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; g_autofree char *uuidstr = NULL; int ret = -1; @@ -216,7 +216,6 @@ libxlMigrationEatCookie(const char *cookiein, libxlMigrationCookieFree(mig); cleanup: - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); return ret; } diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 9558938866..cecacb051b 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4196,7 +4196,7 @@ virQEMUCapsLoadCache(virArch hostArch, size_t i; int n; xmlNodePtr *nodes = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; char *str = NULL; long long int l; unsigned long lu; @@ -4421,7 +4421,6 @@ virQEMUCapsLoadCache(virArch hostArch, cleanup: VIR_FREE(str); VIR_FREE(nodes); - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); return ret; } diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 52998ddd1b..b4081b17e2 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -1432,7 +1432,7 @@ qemuMigrationCookieXMLParseStr(qemuMigrationCookie *mig, unsigned int flags) { xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; int ret = -1; VIR_DEBUG("xml=%s", NULLSTR(xml)); @@ -1443,7 +1443,6 @@ qemuMigrationCookieXMLParseStr(qemuMigrationCookie *mig, ret = qemuMigrationCookieXMLParse(mig, driver, qemuCaps, doc, ctxt, flags); cleanup: - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); return ret; diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index e21557c810..2ba2a4a2b8 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -569,7 +569,7 @@ caps_mockup(vahControl * ctl, const char *xmlStr) { int rc = -1; xmlDocPtr xml = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; char *arch; if (!(xml = virXMLParseStringCtxt(xmlStr, _("(domain_definition)"), @@ -608,7 +608,6 @@ caps_mockup(vahControl * ctl, const char *xmlStr) cleanup: xmlFreeDoc(xml); - xmlXPathFreeContext(ctxt); return rc; } diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index a7c9355bf9..1beff7726a 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -2893,7 +2893,7 @@ virStorageUtilGlusterExtractPoolSources(const char *host, virStoragePoolType pooltype) { xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; virStoragePoolSource *src = NULL; size_t i; int nnodes; @@ -2940,7 +2940,6 @@ virStorageUtilGlusterExtractPoolSources(const char *host, ret = nnodes; cleanup: - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); return ret; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 00cc13511a..6bb52e9302 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -1334,7 +1334,7 @@ static int testOpenFromFile(virConnectPtr conn, const char *file) { xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; testDriver *privconn; if (!(privconn = testDriverNew())) @@ -1355,14 +1355,12 @@ testOpenFromFile(virConnectPtr conn, const char *file) if (testOpenParse(privconn, file, ctxt) < 0) goto error; - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); virObjectUnlock(privconn); return VIR_DRV_OPEN_SUCCESS; error: - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); virObjectUnref(privconn); conn->privateData = NULL; @@ -1378,7 +1376,7 @@ testOpenDefault(virConnectPtr conn) int ret = VIR_DRV_OPEN_ERROR; testDriver *privconn = NULL; xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; size_t i; virMutexLock(&defaultLock); @@ -1426,7 +1424,6 @@ testOpenDefault(virConnectPtr conn) ret = VIR_DRV_OPEN_SUCCESS; cleanup: virMutexUnlock(&defaultLock); - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); return ret; diff --git a/src/vbox/vbox_snapshot_conf.c b/src/vbox/vbox_snapshot_conf.c index 7fb97d49d9..0f30aef108 100644 --- a/src/vbox/vbox_snapshot_conf.c +++ b/src/vbox/vbox_snapshot_conf.c @@ -578,7 +578,7 @@ virVBoxSnapshotConfLoadVboxFile(const char *filePath, xmlDocPtr xml = NULL; xmlNodePtr machineNode = NULL; xmlNodePtr cur = NULL; - xmlXPathContextPtr xPathContext = NULL; + g_autoptr(xmlXPathContext) xPathContext = NULL; char *currentStateModifiedString = NULL; char **searchResultTab = NULL; @@ -716,7 +716,6 @@ virVBoxSnapshotConfLoadVboxFile(const char *filePath, ret = 0; cleanup: - xmlXPathFreeContext(xPathContext); xmlFreeDoc(xml); VIR_FREE(currentStateModifiedString); @@ -1221,7 +1220,7 @@ virVBoxSnapshotConfGetRWDisksPathsFromLibvirtXML(const char *filePath, size_t i = 0; char **ret = NULL; xmlDocPtr xml = NULL; - xmlXPathContextPtr xPathContext = NULL; + g_autoptr(xmlXPathContext) xPathContext = NULL; xmlNodePtr *nodes = NULL; int nodeSize = 0; *rwDisksPath = NULL; @@ -1260,7 +1259,6 @@ virVBoxSnapshotConfGetRWDisksPathsFromLibvirtXML(const char *filePath, cleanup: xmlFreeDoc(xml); - xmlXPathFreeContext(xPathContext); if (result < 0) { g_strfreev(ret); nodeSize = -1; @@ -1284,7 +1282,7 @@ virVBoxSnapshotConfGetRODisksPathsFromLibvirtXML(const char *filePath, size_t i = 0; char **ret = NULL; xmlDocPtr xml = NULL; - xmlXPathContextPtr xPathContext = NULL; + g_autoptr(xmlXPathContext) xPathContext = NULL; xmlNodePtr *nodes = NULL; int nodeSize = 0; if (filePath == NULL) { @@ -1322,7 +1320,6 @@ virVBoxSnapshotConfGetRODisksPathsFromLibvirtXML(const char *filePath, cleanup: xmlFreeDoc(xml); - xmlXPathFreeContext(xPathContext); if (result < 0) { g_strfreev(ret); nodeSize = -1; diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index a9cd3d90c9..edc4327550 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -2790,7 +2790,7 @@ static vzMigrationCookie * vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) { xmlDocPtr doc = NULL; - xmlXPathContextPtr ctx = NULL; + g_autoptr(xmlXPathContext) ctx = NULL; vzMigrationCookie *mig = NULL; mig = g_new0(vzMigrationCookie, 1); @@ -2838,7 +2838,6 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) } cleanup: - xmlXPathFreeContext(ctx); xmlFreeDoc(doc); return mig; diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 7871b04005..5a747913b5 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -4579,7 +4579,7 @@ prlsdkParseSnapshotTree(const char *treexml) { virDomainSnapshotObjList *ret = NULL; xmlDocPtr xml = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; xmlNodePtr root; xmlNodePtr *nodes = NULL; virDomainSnapshotDef *def = NULL; @@ -4696,7 +4696,6 @@ prlsdkParseSnapshotTree(const char *treexml) virDomainSnapshotObjListFree(snapshots); VIR_FREE(nodes); VIR_FREE(xmlstr); - xmlXPathFreeContext(ctxt); xmlFreeDoc(xml); VIR_FREE(def); diff --git a/tests/cputest.c b/tests/cputest.c index 18de84e050..34d9e8ddb0 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -72,7 +72,7 @@ cpuTestLoadXML(virArch arch, const char *name) { char *xml = NULL; xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; virCPUDef *cpu = NULL; xml = g_strdup_printf("%s/cputestdata/%s-%s.xml", abs_srcdir, @@ -84,7 +84,6 @@ cpuTestLoadXML(virArch arch, const char *name) virCPUDefParseXML(ctxt, NULL, VIR_CPU_TYPE_AUTO, &cpu, false); cleanup: - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); VIR_FREE(xml); return cpu; @@ -98,7 +97,7 @@ cpuTestLoadMultiXML(virArch arch, { char *xml = NULL; xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; xmlNodePtr *nodes = NULL; virCPUDef **cpus = NULL; int n; @@ -130,7 +129,6 @@ cpuTestLoadMultiXML(virArch arch, cleanup: VIR_FREE(xml); VIR_FREE(nodes); - xmlXPathFreeContext(ctxt); xmlFreeDoc(doc); return cpus; diff --git a/tests/metadatatest.c b/tests/metadatatest.c index a9080b32d7..ceb683028c 100644 --- a/tests/metadatatest.c +++ b/tests/metadatatest.c @@ -57,7 +57,7 @@ static char * getMetadataFromXML(virDomainPtr dom) { xmlDocPtr doc = NULL; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; xmlNodePtr node; char *xml = NULL; @@ -77,7 +77,6 @@ getMetadataFromXML(virDomainPtr dom) cleanup: VIR_FREE(xml); xmlFreeDoc(doc); - xmlXPathFreeContext(ctxt); return ret; } diff --git a/tests/qemucaps2xmltest.c b/tests/qemucaps2xmltest.c index 68bbf07ec2..35eb27c1fb 100644 --- a/tests/qemucaps2xmltest.c +++ b/tests/qemucaps2xmltest.c @@ -52,7 +52,7 @@ testQemuGetCaps(char *caps) { virQEMUCaps *qemuCaps = NULL; xmlDocPtr xml; - xmlXPathContextPtr ctxt = NULL; + g_autoptr(xmlXPathContext) ctxt = NULL; ssize_t i, n; g_autofree xmlNodePtr *nodes = NULL; @@ -80,13 +80,11 @@ testQemuGetCaps(char *caps) } xmlFreeDoc(xml); - xmlXPathFreeContext(ctxt); return qemuCaps; error: virObjectUnref(qemuCaps); xmlFreeDoc(xml); - xmlXPathFreeContext(ctxt); return NULL; } diff --git a/tests/virnetdevbandwidthtest.c b/tests/virnetdevbandwidthtest.c index f399c95da0..51ceae5a6a 100644 --- a/tests/virnetdevbandwidthtest.c +++ b/tests/virnetdevbandwidthtest.c @@ -43,7 +43,7 @@ struct testSetStruct { do { \ int rc; \ xmlDocPtr doc; \ - xmlXPathContextPtr ctxt = NULL; \ + g_autoptr(xmlXPathContext) ctxt = NULL; \ \ if (!xml) \ break; \ @@ -58,7 +58,6 @@ struct testSetStruct { ctxt->node, \ true); \ xmlFreeDoc(doc); \ - xmlXPathFreeContext(ctxt); \ if (rc < 0) \ goto cleanup; \ } while (0) -- 2.31.1

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/checkpoint_conf.c | 3 +-- src/conf/cpu_conf.c | 3 +-- src/conf/domain_conf.c | 6 ++---- src/conf/interface_conf.c | 3 +-- src/conf/node_device_conf.c | 3 +-- src/conf/nwfilter_conf.c | 3 +-- src/conf/secret_conf.c | 3 +-- src/conf/snapshot_conf.c | 3 +-- src/conf/storage_conf.c | 6 ++---- src/conf/virnetworkportdef.c | 3 +-- src/conf/virnwfilterbindingdef.c | 3 +-- src/conf/virnwfilterbindingobj.c | 3 +-- src/conf/virsavecookie.c | 3 +-- src/conf/virstorageobj.c | 3 +-- src/libxl/libxl_migration.c | 3 +-- src/qemu/qemu_capabilities.c | 3 +-- src/qemu/qemu_migration_cookie.c | 3 +-- src/security/virt-aa-helper.c | 3 +-- src/storage/storage_util.c | 3 +-- src/test/test_driver.c | 10 +++------- src/util/virxml.c | 3 +-- src/vbox/vbox_snapshot_conf.c | 12 ++++-------- src/vz/vz_driver.c | 3 +-- src/vz/vz_sdk.c | 3 +-- tests/cputest.c | 6 ++---- tests/metadatatest.c | 3 +-- tests/qemucaps2xmltest.c | 4 +--- tests/virnetdevbandwidthtest.c | 3 +-- 28 files changed, 36 insertions(+), 74 deletions(-) diff --git a/src/conf/checkpoint_conf.c b/src/conf/checkpoint_conf.c index d2041dd0ac..4731f21aba 100644 --- a/src/conf/checkpoint_conf.c +++ b/src/conf/checkpoint_conf.c @@ -213,7 +213,7 @@ virDomainCheckpointDefParseString(const char *xmlStr, unsigned int flags) { virDomainCheckpointDef *ret = NULL; - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; int keepBlanksDefault = xmlKeepBlanksDefault(0); if ((xml = virXMLParse(NULL, xmlStr, _("(domain_checkpoint)"), @@ -221,7 +221,6 @@ virDomainCheckpointDefParseString(const char *xmlStr, xmlKeepBlanksDefault(keepBlanksDefault); ret = virDomainCheckpointDefParseNode(xml, xmlDocGetRootElement(xml), xmlopt, parseOpaque, flags); - xmlFreeDoc(xml); } xmlKeepBlanksDefault(keepBlanksDefault); diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index dac7af4bf4..4434120557 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -281,7 +281,7 @@ virCPUDefParseXMLString(const char *xml, virCPUDef **cpu, bool validateXML) { - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; int ret = -1; @@ -299,7 +299,6 @@ virCPUDefParseXMLString(const char *xml, ret = 0; cleanup: - xmlFreeDoc(doc); return ret; } diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 926f831073..10effdce69 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -20377,7 +20377,7 @@ virDomainDefParse(const char *xmlStr, void *parseOpaque, unsigned int flags) { - xmlDocPtr xml = NULL; + g_autoptr(xmlDoc) xml = NULL; virDomainDef *def = NULL; int keepBlanksDefault = xmlKeepBlanksDefault(0); xmlNodePtr root; @@ -20397,7 +20397,6 @@ virDomainDefParse(const char *xmlStr, def = virDomainDefParseNode(xml, root, xmlopt, parseOpaque, flags); cleanup: - xmlFreeDoc(xml); xmlKeepBlanksDefault(keepBlanksDefault); return def; } @@ -20480,14 +20479,13 @@ virDomainObjParseFile(const char *filename, virDomainXMLOption *xmlopt, unsigned int flags) { - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; virDomainObj *obj = NULL; int keepBlanksDefault = xmlKeepBlanksDefault(0); if ((xml = virXMLParseFile(filename))) { obj = virDomainObjParseNode(xml, xmlDocGetRootElement(xml), xmlopt, flags); - xmlFreeDoc(xml); } xmlKeepBlanksDefault(keepBlanksDefault); diff --git a/src/conf/interface_conf.c b/src/conf/interface_conf.c index c4b763d0de..c371a252a8 100644 --- a/src/conf/interface_conf.c +++ b/src/conf/interface_conf.c @@ -821,12 +821,11 @@ static virInterfaceDef * virInterfaceDefParse(const char *xmlStr, const char *filename) { - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; virInterfaceDef *def = NULL; if ((xml = virXMLParse(filename, xmlStr, _("(interface_definition)"), NULL, false))) { def = virInterfaceDefParseNode(xml, xmlDocGetRootElement(xml)); - xmlFreeDoc(xml); } return def; diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index bda1a11b37..b4c1acb6a5 100644 --- a/src/conf/node_device_conf.c +++ b/src/conf/node_device_conf.c @@ -2174,13 +2174,12 @@ virNodeDeviceDefParse(const char *str, virNodeDeviceDefParserCallbacks *parserCallbacks, void *opaque) { - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; g_autoptr(virNodeDeviceDef) def = NULL; if ((xml = virXMLParse(filename, str, _("(node_device_definition)"), NULL, false))) { def = virNodeDeviceDefParseNode(xml, xmlDocGetRootElement(xml), create, virt_type); - xmlFreeDoc(xml); } if (parserCallbacks) { diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index b7adae7161..7d491e27b1 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2742,11 +2742,10 @@ virNWFilterDefParse(const char *xmlStr, const char *filename) { virNWFilterDef *def = NULL; - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; if ((xml = virXMLParse(filename, xmlStr, _("(nwfilter_definition)"), NULL, false))) { def = virNWFilterDefParseNode(xml, xmlDocGetRootElement(xml)); - xmlFreeDoc(xml); } return def; diff --git a/src/conf/secret_conf.c b/src/conf/secret_conf.c index 5968b4365c..ef6a4b606e 100644 --- a/src/conf/secret_conf.c +++ b/src/conf/secret_conf.c @@ -193,12 +193,11 @@ static virSecretDef * virSecretDefParse(const char *xmlStr, const char *filename) { - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; virSecretDef *ret = NULL; if ((xml = virXMLParse(filename, xmlStr, _("(definition_of_secret)"), NULL, false))) { ret = secretXMLParseNode(xml, xmlDocGetRootElement(xml)); - xmlFreeDoc(xml); } return ret; diff --git a/src/conf/snapshot_conf.c b/src/conf/snapshot_conf.c index 6d3c59f98e..c765e4c815 100644 --- a/src/conf/snapshot_conf.c +++ b/src/conf/snapshot_conf.c @@ -447,7 +447,7 @@ virDomainSnapshotDefParseString(const char *xmlStr, unsigned int flags) { virDomainSnapshotDef *ret = NULL; - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; int keepBlanksDefault = xmlKeepBlanksDefault(0); if ((xml = virXMLParse(NULL, xmlStr, _("(domain_snapshot)"), "domainsnapshot.rng", @@ -456,7 +456,6 @@ virDomainSnapshotDefParseString(const char *xmlStr, ret = virDomainSnapshotDefParseNode(xml, xmlDocGetRootElement(xml), xmlopt, parseOpaque, current, flags); - xmlFreeDoc(xml); } xmlKeepBlanksDefault(keepBlanksDefault); diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index e72e8d0ade..040a413d0f 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1007,11 +1007,10 @@ virStoragePoolDefParse(const char *xmlStr, const char *filename) { virStoragePoolDef *ret = NULL; - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; if ((xml = virXMLParse(filename, xmlStr, _("(storage_pool_definition)"), NULL, false))) { ret = virStoragePoolDefParseNode(xml, xmlDocGetRootElement(xml)); - xmlFreeDoc(xml); } return ret; @@ -1476,11 +1475,10 @@ virStorageVolDefParse(virStoragePoolDef *pool, unsigned int flags) { virStorageVolDef *ret = NULL; - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; if ((xml = virXMLParse(filename, xmlStr, _("(storage_volume_definition)"), NULL, false))) { ret = virStorageVolDefParseNode(pool, xml, xmlDocGetRootElement(xml), flags); - xmlFreeDoc(xml); } return ret; diff --git a/src/conf/virnetworkportdef.c b/src/conf/virnetworkportdef.c index 8da05353b7..5e916ab2b8 100644 --- a/src/conf/virnetworkportdef.c +++ b/src/conf/virnetworkportdef.c @@ -294,11 +294,10 @@ virNetworkPortDefParse(const char *xmlStr, const char *filename) { virNetworkPortDef *def = NULL; - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; if ((xml = virXMLParse(filename, xmlStr, _("(networkport_definition)"), NULL, false))) { def = virNetworkPortDefParseNode(xml, xmlDocGetRootElement(xml)); - xmlFreeDoc(xml); } return def; diff --git a/src/conf/virnwfilterbindingdef.c b/src/conf/virnwfilterbindingdef.c index 45fa51a56c..3428b05841 100644 --- a/src/conf/virnwfilterbindingdef.c +++ b/src/conf/virnwfilterbindingdef.c @@ -185,11 +185,10 @@ virNWFilterBindingDefParse(const char *xmlStr, const char *filename) { virNWFilterBindingDef *def = NULL; - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_definition)"), NULL, false))) { def = virNWFilterBindingDefParseNode(xml, xmlDocGetRootElement(xml)); - xmlFreeDoc(xml); } return def; diff --git a/src/conf/virnwfilterbindingobj.c b/src/conf/virnwfilterbindingobj.c index 20f33506fd..279e334d3f 100644 --- a/src/conf/virnwfilterbindingobj.c +++ b/src/conf/virnwfilterbindingobj.c @@ -262,11 +262,10 @@ virNWFilterBindingObjParse(const char *xmlStr, const char *filename) { virNWFilterBindingObj *obj = NULL; - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; if ((xml = virXMLParse(filename, xmlStr, _("(nwfilterbinding_status)"), NULL, false))) { obj = virNWFilterBindingObjParseNode(xml, xmlDocGetRootElement(xml)); - xmlFreeDoc(xml); } return obj; diff --git a/src/conf/virsavecookie.c b/src/conf/virsavecookie.c index b7e1e7df93..3bb97246af 100644 --- a/src/conf/virsavecookie.c +++ b/src/conf/virsavecookie.c @@ -79,7 +79,7 @@ virSaveCookieParseString(const char *xml, virObject **obj, virSaveCookieCallbacks *saveCookie) { - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; int ret = -1; @@ -96,7 +96,6 @@ virSaveCookieParseString(const char *xml, ret = virSaveCookieParseNode(ctxt, obj, saveCookie); cleanup: - xmlFreeDoc(doc); return ret; } diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 91c63b2c45..f8b85494c0 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -1643,7 +1643,7 @@ virStoragePoolObjLoadState(virStoragePoolObjList *pools, { char *stateFile = NULL; virStoragePoolObj *obj = NULL; - xmlDocPtr xml = NULL; + g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; xmlNodePtr node = NULL; g_autoptr(virStoragePoolDef) def = NULL; @@ -1687,7 +1687,6 @@ virStoragePoolObjLoadState(virStoragePoolObjList *pools, cleanup: VIR_FREE(stateFile); - xmlFreeDoc(xml); return obj; } diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index 817252bce9..a2c2b6dbde 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -148,7 +148,7 @@ libxlMigrationEatCookie(const char *cookiein, libxlMigrationCookie **migout) { libxlMigrationCookie *mig = NULL; - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; g_autofree char *uuidstr = NULL; int ret = -1; @@ -216,7 +216,6 @@ libxlMigrationEatCookie(const char *cookiein, libxlMigrationCookieFree(mig); cleanup: - xmlFreeDoc(doc); return ret; } diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index cecacb051b..535550754c 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4191,7 +4191,7 @@ virQEMUCapsLoadCache(virArch hostArch, const char *filename, bool skipInvalidation) { - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; int ret = -1; size_t i; int n; @@ -4421,7 +4421,6 @@ virQEMUCapsLoadCache(virArch hostArch, cleanup: VIR_FREE(str); VIR_FREE(nodes); - xmlFreeDoc(doc); return ret; } diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index b4081b17e2..106897cacd 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -1431,7 +1431,7 @@ qemuMigrationCookieXMLParseStr(qemuMigrationCookie *mig, const char *xml, unsigned int flags) { - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; int ret = -1; @@ -1443,7 +1443,6 @@ qemuMigrationCookieXMLParseStr(qemuMigrationCookie *mig, ret = qemuMigrationCookieXMLParse(mig, driver, qemuCaps, doc, ctxt, flags); cleanup: - xmlFreeDoc(doc); return ret; } diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 2ba2a4a2b8..c0bbd7414a 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -568,7 +568,7 @@ static int caps_mockup(vahControl * ctl, const char *xmlStr) { int rc = -1; - xmlDocPtr xml = NULL; + g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; char *arch; @@ -607,7 +607,6 @@ caps_mockup(vahControl * ctl, const char *xmlStr) rc = 0; cleanup: - xmlFreeDoc(xml); return rc; } diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index 1beff7726a..7ee736535c 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -2892,7 +2892,7 @@ virStorageUtilGlusterExtractPoolSources(const char *host, virStoragePoolSourceList *list, virStoragePoolType pooltype) { - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; virStoragePoolSource *src = NULL; size_t i; @@ -2940,7 +2940,6 @@ virStorageUtilGlusterExtractPoolSources(const char *host, ret = nnodes; cleanup: - xmlFreeDoc(doc); return ret; } diff --git a/src/test/test_driver.c b/src/test/test_driver.c index 6bb52e9302..b096d49ac6 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -825,7 +825,7 @@ static xmlNodePtr testParseXMLDocFromFile(xmlNodePtr node, const char *file, const char *type) { xmlNodePtr ret = NULL; - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autofree char *absFile = NULL; g_autofree char *relFile = NULL; @@ -848,7 +848,6 @@ testParseXMLDocFromFile(xmlNodePtr node, const char *file, const char *type) } error: - xmlFreeDoc(doc); return ret; } @@ -1333,7 +1332,7 @@ testOpenParse(testDriver *privconn, static int testOpenFromFile(virConnectPtr conn, const char *file) { - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; testDriver *privconn; @@ -1355,13 +1354,11 @@ testOpenFromFile(virConnectPtr conn, const char *file) if (testOpenParse(privconn, file, ctxt) < 0) goto error; - xmlFreeDoc(doc); virObjectUnlock(privconn); return VIR_DRV_OPEN_SUCCESS; error: - xmlFreeDoc(doc); virObjectUnref(privconn); conn->privateData = NULL; return VIR_DRV_OPEN_ERROR; @@ -1375,7 +1372,7 @@ testOpenDefault(virConnectPtr conn) { int ret = VIR_DRV_OPEN_ERROR; testDriver *privconn = NULL; - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; size_t i; @@ -1424,7 +1421,6 @@ testOpenDefault(virConnectPtr conn) ret = VIR_DRV_OPEN_SUCCESS; cleanup: virMutexUnlock(&defaultLock); - xmlFreeDoc(doc); return ret; error: diff --git a/src/util/virxml.c b/src/util/virxml.c index 61e3d91640..b736d59d9c 100644 --- a/src/util/virxml.c +++ b/src/util/virxml.c @@ -1619,12 +1619,11 @@ int virXMLValidateNodeAgainstSchema(const char *schemafile, xmlNodePtr node) { int ret; - xmlDocPtr copy = xmlNewDoc(NULL); + g_autoptr(xmlDoc) copy = xmlNewDoc(NULL); xmlDocSetRootElement(copy, xmlCopyNode(node, true)); ret = virXMLValidateAgainstSchema(schemafile, copy); - xmlFreeDoc(copy); return ret; } diff --git a/src/vbox/vbox_snapshot_conf.c b/src/vbox/vbox_snapshot_conf.c index 0f30aef108..65546b785e 100644 --- a/src/vbox/vbox_snapshot_conf.c +++ b/src/vbox/vbox_snapshot_conf.c @@ -575,7 +575,7 @@ virVBoxSnapshotConfLoadVboxFile(const char *filePath, { int ret = -1; virVBoxSnapshotConfMachine *machineDescription = NULL; - xmlDocPtr xml = NULL; + g_autoptr(xmlDoc) xml = NULL; xmlNodePtr machineNode = NULL; xmlNodePtr cur = NULL; g_autoptr(xmlXPathContext) xPathContext = NULL; @@ -716,7 +716,6 @@ virVBoxSnapshotConfLoadVboxFile(const char *filePath, ret = 0; cleanup: - xmlFreeDoc(xml); VIR_FREE(currentStateModifiedString); VIR_FREE(currentSnapshotAttribute); @@ -954,7 +953,7 @@ virVBoxSnapshotConfSaveVboxFile(virVBoxSnapshotConfMachine *machine, { int ret = -1; size_t i = 0; - xmlDocPtr xml = NULL; + g_autoptr(xmlDoc) xml = NULL; xmlNodePtr mediaRegistryNode = NULL; xmlNodePtr snapshotNode = NULL; xmlNodePtr machineNode = NULL; @@ -1172,7 +1171,6 @@ virVBoxSnapshotConfSaveVboxFile(virVBoxSnapshotConfMachine *machine, xmlUnlinkNode(machineNode); xmlFreeNode(machineNode); - xmlFreeDoc(xml); g_strfreev(firstRegex); g_strfreev(secondRegex); @@ -1219,7 +1217,7 @@ virVBoxSnapshotConfGetRWDisksPathsFromLibvirtXML(const char *filePath, int result = -1; size_t i = 0; char **ret = NULL; - xmlDocPtr xml = NULL; + g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) xPathContext = NULL; xmlNodePtr *nodes = NULL; int nodeSize = 0; @@ -1258,7 +1256,6 @@ virVBoxSnapshotConfGetRWDisksPathsFromLibvirtXML(const char *filePath, result = 0; cleanup: - xmlFreeDoc(xml); if (result < 0) { g_strfreev(ret); nodeSize = -1; @@ -1281,7 +1278,7 @@ virVBoxSnapshotConfGetRODisksPathsFromLibvirtXML(const char *filePath, int result = -1; size_t i = 0; char **ret = NULL; - xmlDocPtr xml = NULL; + g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) xPathContext = NULL; xmlNodePtr *nodes = NULL; int nodeSize = 0; @@ -1319,7 +1316,6 @@ virVBoxSnapshotConfGetRODisksPathsFromLibvirtXML(const char *filePath, result = 0; cleanup: - xmlFreeDoc(xml); if (result < 0) { g_strfreev(ret); nodeSize = -1; diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index edc4327550..9eba9d47fb 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -2789,7 +2789,7 @@ vzBakeCookie(struct _vzDriver *driver, static vzMigrationCookie * vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) { - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctx = NULL; vzMigrationCookie *mig = NULL; @@ -2838,7 +2838,6 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) } cleanup: - xmlFreeDoc(doc); return mig; error: diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c index 5a747913b5..2ba48134b0 100644 --- a/src/vz/vz_sdk.c +++ b/src/vz/vz_sdk.c @@ -4578,7 +4578,7 @@ static virDomainSnapshotObjList * prlsdkParseSnapshotTree(const char *treexml) { virDomainSnapshotObjList *ret = NULL; - xmlDocPtr xml = NULL; + g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; xmlNodePtr root; xmlNodePtr *nodes = NULL; @@ -4696,7 +4696,6 @@ prlsdkParseSnapshotTree(const char *treexml) virDomainSnapshotObjListFree(snapshots); VIR_FREE(nodes); VIR_FREE(xmlstr); - xmlFreeDoc(xml); VIR_FREE(def); return ret; diff --git a/tests/cputest.c b/tests/cputest.c index 34d9e8ddb0..d19ded4b40 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -71,7 +71,7 @@ static virCPUDef * cpuTestLoadXML(virArch arch, const char *name) { char *xml = NULL; - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; virCPUDef *cpu = NULL; @@ -84,7 +84,6 @@ cpuTestLoadXML(virArch arch, const char *name) virCPUDefParseXML(ctxt, NULL, VIR_CPU_TYPE_AUTO, &cpu, false); cleanup: - xmlFreeDoc(doc); VIR_FREE(xml); return cpu; } @@ -96,7 +95,7 @@ cpuTestLoadMultiXML(virArch arch, unsigned int *count) { char *xml = NULL; - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; xmlNodePtr *nodes = NULL; virCPUDef **cpus = NULL; @@ -129,7 +128,6 @@ cpuTestLoadMultiXML(virArch arch, cleanup: VIR_FREE(xml); VIR_FREE(nodes); - xmlFreeDoc(doc); return cpus; cleanup_cpus: diff --git a/tests/metadatatest.c b/tests/metadatatest.c index ceb683028c..2bcb0a1225 100644 --- a/tests/metadatatest.c +++ b/tests/metadatatest.c @@ -56,7 +56,7 @@ static const char metadata2_ns[] = static char * getMetadataFromXML(virDomainPtr dom) { - xmlDocPtr doc = NULL; + g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; xmlNodePtr node; @@ -76,7 +76,6 @@ getMetadataFromXML(virDomainPtr dom) cleanup: VIR_FREE(xml); - xmlFreeDoc(doc); return ret; } diff --git a/tests/qemucaps2xmltest.c b/tests/qemucaps2xmltest.c index 35eb27c1fb..ce1116b792 100644 --- a/tests/qemucaps2xmltest.c +++ b/tests/qemucaps2xmltest.c @@ -51,7 +51,7 @@ static virQEMUCaps * testQemuGetCaps(char *caps) { virQEMUCaps *qemuCaps = NULL; - xmlDocPtr xml; + g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; ssize_t i, n; g_autofree xmlNodePtr *nodes = NULL; @@ -79,12 +79,10 @@ testQemuGetCaps(char *caps) } } - xmlFreeDoc(xml); return qemuCaps; error: virObjectUnref(qemuCaps); - xmlFreeDoc(xml); return NULL; } diff --git a/tests/virnetdevbandwidthtest.c b/tests/virnetdevbandwidthtest.c index 51ceae5a6a..83e7b2089f 100644 --- a/tests/virnetdevbandwidthtest.c +++ b/tests/virnetdevbandwidthtest.c @@ -42,7 +42,7 @@ struct testSetStruct { #define PARSE(xml, var) \ do { \ int rc; \ - xmlDocPtr doc; \ + g_autoptr(xmlDoc) doc = NULL; \ g_autoptr(xmlXPathContext) ctxt = NULL; \ \ if (!xml) \ @@ -57,7 +57,6 @@ struct testSetStruct { NULL, \ ctxt->node, \ true); \ - xmlFreeDoc(doc); \ if (rc < 0) \ goto cleanup; \ } while (0) -- 2.31.1

Add g_autofree to functions changed in previous commits doing g_auto cleanup for libxml2-related variables, where it could lead to removal of a label. Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/virstorageobj.c | 3 +-- tests/cputest.c | 9 +++------ tests/metadatatest.c | 3 +-- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index f8b85494c0..1f6fedba13 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -1641,7 +1641,7 @@ virStoragePoolObjLoadState(virStoragePoolObjList *pools, const char *stateDir, const char *name) { - char *stateFile = NULL; + g_autofree char *stateFile = NULL; virStoragePoolObj *obj = NULL; g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; @@ -1686,7 +1686,6 @@ virStoragePoolObjLoadState(virStoragePoolObjList *pools, obj->active = true; cleanup: - VIR_FREE(stateFile); return obj; } diff --git a/tests/cputest.c b/tests/cputest.c index d19ded4b40..14606f5864 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -70,7 +70,7 @@ static virQEMUDriver driver; static virCPUDef * cpuTestLoadXML(virArch arch, const char *name) { - char *xml = NULL; + g_autofree char *xml = NULL; g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; virCPUDef *cpu = NULL; @@ -84,7 +84,6 @@ cpuTestLoadXML(virArch arch, const char *name) virCPUDefParseXML(ctxt, NULL, VIR_CPU_TYPE_AUTO, &cpu, false); cleanup: - VIR_FREE(xml); return cpu; } @@ -94,10 +93,10 @@ cpuTestLoadMultiXML(virArch arch, const char *name, unsigned int *count) { - char *xml = NULL; + g_autofree char *xml = NULL; g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; - xmlNodePtr *nodes = NULL; + g_autofree xmlNodePtr *nodes = NULL; virCPUDef **cpus = NULL; int n; size_t i; @@ -126,8 +125,6 @@ cpuTestLoadMultiXML(virArch arch, *count = n; cleanup: - VIR_FREE(xml); - VIR_FREE(nodes); return cpus; cleanup_cpus: diff --git a/tests/metadatatest.c b/tests/metadatatest.c index 2bcb0a1225..2c560c27c1 100644 --- a/tests/metadatatest.c +++ b/tests/metadatatest.c @@ -60,7 +60,7 @@ getMetadataFromXML(virDomainPtr dom) g_autoptr(xmlXPathContext) ctxt = NULL; xmlNodePtr node; - char *xml = NULL; + g_autofree char *xml = NULL; char *ret = NULL; if (!(xml = virDomainGetXMLDesc(dom, 0))) @@ -75,7 +75,6 @@ getMetadataFromXML(virDomainPtr dom) ret = virXMLNodeToString(node->doc, node); cleanup: - VIR_FREE(xml); return ret; } -- 2.31.1

Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/cpu_conf.c | 12 ++++-------- src/conf/virnetworkportdef.c | 10 +++------- src/conf/virnwfilterbindingdef.c | 10 +++------- src/conf/virnwfilterbindingobj.c | 10 +++------- src/conf/virsavecookie.c | 14 ++++---------- src/conf/virstorageobj.c | 12 +++++------- src/libxl/libxl_migration.c | 8 ++------ src/qemu/qemu_migration_cookie.c | 9 ++------- src/security/virt-aa-helper.c | 17 ++++++----------- src/storage/storage_util.c | 17 ++++++----------- src/vz/vz_driver.c | 4 +--- tests/cputest.c | 14 ++++++-------- tests/metadatatest.c | 13 ++++--------- 13 files changed, 49 insertions(+), 101 deletions(-) diff --git a/src/conf/cpu_conf.c b/src/conf/cpu_conf.c index 4434120557..1674cd6957 100644 --- a/src/conf/cpu_conf.c +++ b/src/conf/cpu_conf.c @@ -283,23 +283,19 @@ virCPUDefParseXMLString(const char *xml, { g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; - int ret = -1; if (!xml) { virReportError(VIR_ERR_INVALID_ARG, "%s", _("missing CPU definition")); - goto cleanup; + return -1; } if (!(doc = virXMLParseStringCtxt(xml, _("(CPU_definition)"), &ctxt))) - goto cleanup; + return -1; if (virCPUDefParseXML(ctxt, NULL, type, cpu, validateXML) < 0) - goto cleanup; + return -1; - ret = 0; - - cleanup: - return ret; + return 0; } diff --git a/src/conf/virnetworkportdef.c b/src/conf/virnetworkportdef.c index 5e916ab2b8..c1749eebe0 100644 --- a/src/conf/virnetworkportdef.c +++ b/src/conf/virnetworkportdef.c @@ -269,23 +269,19 @@ virNetworkPortDefParseNode(xmlDocPtr xml, xmlNodePtr root) { g_autoptr(xmlXPathContext) ctxt = NULL; - virNetworkPortDef *def = NULL; if (STRNEQ((const char *)root->name, "networkport")) { virReportError(VIR_ERR_XML_ERROR, "%s", _("unknown root element for network port")); - goto cleanup; + return NULL; } if (!(ctxt = virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node = root; - def = virNetworkPortDefParseXML(ctxt); - - cleanup: - return def; + return virNetworkPortDefParseXML(ctxt); } diff --git a/src/conf/virnwfilterbindingdef.c b/src/conf/virnwfilterbindingdef.c index 3428b05841..5f671030bb 100644 --- a/src/conf/virnwfilterbindingdef.c +++ b/src/conf/virnwfilterbindingdef.c @@ -160,23 +160,19 @@ virNWFilterBindingDefParseNode(xmlDocPtr xml, xmlNodePtr root) { g_autoptr(xmlXPathContext) ctxt = NULL; - virNWFilterBindingDef *def = NULL; if (STRNEQ((const char *)root->name, "filterbinding")) { virReportError(VIR_ERR_XML_ERROR, "%s", _("unknown root element for nwfilter binding")); - goto cleanup; + return NULL; } if (!(ctxt = virXMLXPathContextNew(xml))) - goto cleanup; + return NULL; ctxt->node = root; - def = virNWFilterBindingDefParseXML(ctxt); - - cleanup: - return def; + return virNWFilterBindingDefParseXML(ctxt); } diff --git a/src/conf/virnwfilterbindingobj.c b/src/conf/virnwfilterbindingobj.c index 279e334d3f..29fbb63b5f 100644 --- a/src/conf/virnwfilterbindingobj.c +++ b/src/conf/virnwfilterbindingobj.c @@ -237,23 +237,19 @@ virNWFilterBindingObjParseNode(xmlDocPtr doc, xmlNodePtr root) { g_autoptr(xmlXPathContext) ctxt = NULL; - virNWFilterBindingObj *obj = NULL; if (STRNEQ((const char *)root->name, "filterbindingstatus")) { virReportError(VIR_ERR_XML_ERROR, _("unknown root element '%s' for filter binding"), root->name); - goto cleanup; + return NULL; } if (!(ctxt = virXMLXPathContextNew(doc))) - goto cleanup; + return NULL; ctxt->node = root; - obj = virNWFilterBindingObjParseXML(doc, ctxt); - - cleanup: - return obj; + return virNWFilterBindingObjParseXML(doc, ctxt); } diff --git a/src/conf/virsavecookie.c b/src/conf/virsavecookie.c index 3bb97246af..6cb7fafb1f 100644 --- a/src/conf/virsavecookie.c +++ b/src/conf/virsavecookie.c @@ -81,22 +81,16 @@ virSaveCookieParseString(const char *xml, { g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; - int ret = -1; *obj = NULL; - if (!xml) { - ret = 0; - goto cleanup; - } + if (!xml) + return 0; if (!(doc = virXMLParseStringCtxt(xml, _("(save cookie)"), &ctxt))) - goto cleanup; + return -1; - ret = virSaveCookieParseNode(ctxt, obj, saveCookie); - - cleanup: - return ret; + return virSaveCookieParseNode(ctxt, obj, saveCookie); } diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 1f6fedba13..f906c5b141 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -1652,30 +1652,30 @@ virStoragePoolObjLoadState(virStoragePoolObjList *pools, return NULL; if (!(xml = virXMLParseCtxt(stateFile, NULL, _("(pool state)"), &ctxt))) - goto cleanup; + return NULL; if (!(node = virXPathNode("//pool", ctxt))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Could not find any 'pool' element in state file")); - goto cleanup; + return NULL; } ctxt->node = node; if (!(def = virStoragePoolDefParseXML(ctxt))) - goto cleanup; + return NULL; if (STRNEQ(name, def->name)) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Storage pool state file '%s' does not match " "pool name '%s'"), stateFile, def->name); - goto cleanup; + return NULL; } /* create the object */ if (!(obj = virStoragePoolObjListAdd(pools, def, VIR_STORAGE_POOL_OBJ_LIST_ADD_CHECK_LIVE))) - goto cleanup; + return NULL; def = NULL; /* XXX: future handling of some additional useful status data, @@ -1684,8 +1684,6 @@ virStoragePoolObjLoadState(virStoragePoolObjList *pools, */ obj->active = true; - - cleanup: return obj; } diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index a2c2b6dbde..aa719a19d2 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -151,7 +151,6 @@ libxlMigrationEatCookie(const char *cookiein, g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; g_autofree char *uuidstr = NULL; - int ret = -1; /* * Assume a legacy (V1) migration stream if request came from a @@ -209,14 +208,11 @@ libxlMigrationEatCookie(const char *cookiein, } *migout = mig; - ret = 0; - goto cleanup; + return 0; error: libxlMigrationCookieFree(mig); - - cleanup: - return ret; + return -1; } static void diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 106897cacd..b67728f9c0 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -1433,18 +1433,13 @@ qemuMigrationCookieXMLParseStr(qemuMigrationCookie *mig, { g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; - int ret = -1; VIR_DEBUG("xml=%s", NULLSTR(xml)); if (!(doc = virXMLParseStringCtxt(xml, _("(qemu_migration_cookie)"), &ctxt))) - goto cleanup; + return -1; - ret = qemuMigrationCookieXMLParse(mig, driver, qemuCaps, doc, ctxt, flags); - - cleanup: - - return ret; + return qemuMigrationCookieXMLParse(mig, driver, qemuCaps, doc, ctxt, flags); } diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index c0bbd7414a..77b2307594 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -567,34 +567,33 @@ verify_xpath_context(xmlXPathContextPtr ctxt) static int caps_mockup(vahControl * ctl, const char *xmlStr) { - int rc = -1; g_autoptr(xmlDoc) xml = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; char *arch; if (!(xml = virXMLParseStringCtxt(xmlStr, _("(domain_definition)"), &ctxt))) { - goto cleanup; + return -1; } if (!virXMLNodeNameEqual(ctxt->node, "domain")) { vah_error(NULL, 0, _("unexpected root element, expecting <domain>")); - goto cleanup; + return -1; } /* Quick sanity check for some required elements */ if (verify_xpath_context(ctxt) != 0) - goto cleanup; + return -1; ctl->virtType = virXPathString("string(./@type)", ctxt); if (!ctl->virtType) { vah_error(ctl, 0, _("domain type is not defined")); - goto cleanup; + return -1; } ctl->os = virXPathString("string(./os/type[1])", ctxt); if (!ctl->os) { vah_error(ctl, 0, _("os.type is not defined")); - goto cleanup; + return -1; } arch = virXPathString("string(./os/type[1]/@arch)", ctxt); if (!arch) { @@ -604,11 +603,7 @@ caps_mockup(vahControl * ctl, const char *xmlStr) VIR_FREE(arch); } - rc = 0; - - cleanup: - - return rc; + return 0; } virDomainDefParserConfig virAAHelperDomainDefParserConfig = { diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index 7ee736535c..53792765ff 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -2897,26 +2897,25 @@ virStorageUtilGlusterExtractPoolSources(const char *host, virStoragePoolSource *src = NULL; size_t i; int nnodes; - int ret = -1; g_autofree xmlNodePtr *nodes = NULL; g_autofree char *volname = NULL; if (!(doc = virXMLParseStringCtxt(xml, _("(gluster_cli_output)"), &ctxt))) - goto cleanup; + return -1; if ((nnodes = virXPathNodeSet("//volumes/volume", ctxt, &nodes)) < 0) - goto cleanup; + return -1; for (i = 0; i < nnodes; i++) { ctxt->node = nodes[i]; if (!(src = virStoragePoolSourceListNewSource(list))) - goto cleanup; + return -1; if (!(volname = virXPathString("string(./name)", ctxt))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("failed to extract gluster volume name")); - goto cleanup; + return -1; } if (pooltype == VIR_STORAGE_POOL_NETFS) { @@ -2928,7 +2927,7 @@ virStorageUtilGlusterExtractPoolSources(const char *host, } else { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("unsupported gluster lookup")); - goto cleanup; + return -1; } src->hosts = g_new0(virStoragePoolSourceHost, 1); @@ -2937,11 +2936,7 @@ virStorageUtilGlusterExtractPoolSources(const char *host, src->hosts[0].name = g_strdup(host); } - ret = nnodes; - - cleanup: - - return ret; + return nnodes; } diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c index 9eba9d47fb..a1d05f834b 100644 --- a/src/vz/vz_driver.c +++ b/src/vz/vz_driver.c @@ -2837,13 +2837,11 @@ vzEatCookie(const char *cookiein, int cookieinlen, unsigned int flags) goto error; } - cleanup: return mig; error: vzMigrationCookieFree(mig); - mig = NULL; - goto cleanup; + return NULL; } #define VZ_MIGRATION_FLAGS (VIR_MIGRATE_PAUSED | \ diff --git a/tests/cputest.c b/tests/cputest.c index 14606f5864..7816de87f7 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -79,11 +79,10 @@ cpuTestLoadXML(virArch arch, const char *name) virArchToString(arch), name); if (!(doc = virXMLParseFileCtxt(xml, &ctxt))) - goto cleanup; + return NULL; virCPUDefParseXML(ctxt, NULL, VIR_CPU_TYPE_AUTO, &cpu, false); - cleanup: return cpu; } @@ -105,12 +104,12 @@ cpuTestLoadMultiXML(virArch arch, virArchToString(arch), name); if (!(doc = virXMLParseFileCtxt(xml, &ctxt))) - goto cleanup; + return NULL; n = virXPathNodeSet("/cpuTest/cpu", ctxt, &nodes); if (n <= 0) { fprintf(stderr, "\nNo /cpuTest/cpu elements found in %s\n", xml); - goto cleanup; + return NULL; } cpus = g_new0(virCPUDef *, n); @@ -119,19 +118,18 @@ cpuTestLoadMultiXML(virArch arch, ctxt->node = nodes[i]; if (virCPUDefParseXML(ctxt, NULL, VIR_CPU_TYPE_HOST, &cpus[i], false) < 0) - goto cleanup_cpus; + goto error; } *count = n; - cleanup: return cpus; - cleanup_cpus: + error: for (i = 0; i < n; i++) virCPUDefFree(cpus[i]); VIR_FREE(cpus); - goto cleanup; + return NULL; } diff --git a/tests/metadatatest.c b/tests/metadatatest.c index 2c560c27c1..e565383ce2 100644 --- a/tests/metadatatest.c +++ b/tests/metadatatest.c @@ -61,22 +61,17 @@ getMetadataFromXML(virDomainPtr dom) xmlNodePtr node; g_autofree char *xml = NULL; - char *ret = NULL; if (!(xml = virDomainGetXMLDesc(dom, 0))) - goto cleanup; + return NULL; if (!(doc = virXMLParseStringCtxt(xml, "(domain_definition)", &ctxt))) - goto cleanup; + return NULL; if (!(node = virXPathNode("//metadata/*", ctxt))) - goto cleanup; + return NULL; - ret = virXMLNodeToString(node->doc, node); - - cleanup: - - return ret; + return virXMLNodeToString(node->doc, node); } -- 2.31.1

On Tue, Aug 17, 2021 at 02:25:33PM +0200, Ján Tomko wrote:
Signed-off-by: Ján Tomko <jtomko@redhat.com> --- src/conf/cpu_conf.c | 12 ++++-------- src/conf/virnetworkportdef.c | 10 +++------- src/conf/virnwfilterbindingdef.c | 10 +++------- src/conf/virnwfilterbindingobj.c | 10 +++------- src/conf/virsavecookie.c | 14 ++++---------- src/conf/virstorageobj.c | 12 +++++------- src/libxl/libxl_migration.c | 8 ++------ src/qemu/qemu_migration_cookie.c | 9 ++------- src/security/virt-aa-helper.c | 17 ++++++----------- src/storage/storage_util.c | 17 ++++++----------- src/vz/vz_driver.c | 4 +--- tests/cputest.c | 14 ++++++-------- tests/metadatatest.c | 13 ++++--------- 13 files changed, 49 insertions(+), 101 deletions(-)
diff --git a/src/libxl/libxl_migration.c b/src/libxl/libxl_migration.c index a2c2b6dbde..aa719a19d2 100644 --- a/src/libxl/libxl_migration.c +++ b/src/libxl/libxl_migration.c @@ -151,7 +151,6 @@ libxlMigrationEatCookie(const char *cookiein, g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; g_autofree char *uuidstr = NULL; - int ret = -1;
/* * Assume a legacy (V1) migration stream if request came from a @@ -209,14 +208,11 @@ libxlMigrationEatCookie(const char *cookiein, }
*migout = mig; - ret = 0; - goto cleanup; + return 0;
error: libxlMigrationCookieFree(mig);
Extra pointer could get rid of this label without adding more lines, but unfortunately without removing any either :( I know it's not related to this patch, I just don't like this label here for some reason.
- - cleanup: - return ret; + return -1; }
static void diff --git a/src/qemu/qemu_migration_cookie.c b/src/qemu/qemu_migration_cookie.c index 106897cacd..b67728f9c0 100644 --- a/src/qemu/qemu_migration_cookie.c +++ b/src/qemu/qemu_migration_cookie.c @@ -1433,18 +1433,13 @@ qemuMigrationCookieXMLParseStr(qemuMigrationCookie *mig, { g_autoptr(xmlDoc) doc = NULL; g_autoptr(xmlXPathContext) ctxt = NULL; - int ret = -1;
VIR_DEBUG("xml=%s", NULLSTR(xml));
if (!(doc = virXMLParseStringCtxt(xml, _("(qemu_migration_cookie)"), &ctxt)))
Another unrelated rant -- life would be much easier if we wouldn't need to free the return value. Unfortunately it is needed in roughly 4 places :( Anyway, the whole series is Reviewed-by: Martin Kletzander <mkletzan@redhat.com>

On Tue, Aug 17, 2021 at 02:25:27PM +0200, Ján Tomko wrote:
Use g_auto for the remaining users of xmlFreeDoc and xmlXPathFreeContext. Also, remove redundant labels where easily possible.
Ján Tomko (6): conf: virCPUDefListParse: reduce scope of variables conf: refactor virNetworkLoadState Use g_auto for xmlXPathContext everywhere Use g_auto for xmlFreeDoc everywhere Use g_autofree in affected functions Remove redundant labels
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
participants (3)
-
Ján Tomko
-
Martin Kletzander
-
Pavel Hrdina