On a Tuesday in 2021, Jim Fehlig wrote:
All of these strings are allocated once, freed once, and are never
returned out of the function where they are declared.
Signed-off-by: Jim Fehlig <jfehlig(a)suse.com>
---
src/libxl/libxl_capabilities.c | 3 +--
src/libxl/libxl_domain.c | 17 +++++------------
src/libxl/libxl_driver.c | 32 +++++++++++---------------------
src/libxl/libxl_logger.c | 21 ++++++---------------
src/libxl/libxl_migration.c | 15 +++++----------
src/libxl/xen_common.c | 17 ++++++-----------
src/libxl/xen_xl.c | 6 ++----
7 files changed, 36 insertions(+), 75 deletions(-)
@@ -1262,8 +1258,8 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
libxlSavefileHeader hdr;
int ret = -1;
uint32_t domid = 0;
- char *dom_xml = NULL;
- char *managed_save_path = NULL;
+ g_autofree char *dom_xml = NULL;
+ g_autofree char *managed_save_path = NULL;
int managed_save_fd = -1;
libxlDomainObjPrivatePtr priv = vm->privateData;
g_autoptr(libxlDriverConfig) cfg = libxlDriverConfigGet(driver);
@@ -1271,7 +1267,7 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
libxl_asyncprogress_how aop_console_how;
libxl_domain_restore_params params;
unsigned int hostdev_flags = VIR_HOSTDEV_SP_PCI;
- char *config_json = NULL;
+ g_autofree char *config_json = NULL;
#ifdef LIBXL_HAVE_PVUSB
hostdev_flags |= VIR_HOSTDEV_SP_USB;
There is one more free that can be removed in the if (restore_fd < 0) block:
vm->hasManagedSave = false;
}
VIR_FREE(managed_save_path);
}
if (virDomainObjSetDefTransient(driver->xmlopt, vm, NULL) < 0)
goto cleanup;
@@ -1513,9 +1509,6 @@ libxlDomainStart(libxlDriverPrivatePtr driver,
cleanup:
libxl_domain_config_dispose(&d_config);
- VIR_FREE(config_json);
- VIR_FREE(dom_xml);
- VIR_FREE(managed_save_path);
virDomainDefFree(def);
VIR_FORCE_CLOSE(managed_save_fd);
return ret;
[...]
@@ -4882,7 +4876,7 @@ libxlDomainGetNumaParameters(virDomainPtr dom,
virDomainObjPtr vm;
libxl_bitmap nodemap;
virBitmapPtr nodes = NULL;
- char *nodeset = NULL;
+ g_autofree char *nodeset = NULL;
This variable is used inside the loop, please move its declaration
there (even though it's only used once).
int rc, ret = -1;
size_t i, j;
@@ -4981,7 +4975,6 @@ libxlDomainGetNumaParameters(virDomainPtr dom,
ret = 0;
cleanup:
- VIR_FREE(nodeset);
virBitmapFree(nodes);
libxl_bitmap_dispose(&nodemap);
virDomainObjEndAPI(&vm);
With the logger changes from your reply:
Reviewed-by: Ján Tomko <jtomko(a)redhat.com>
Jano