[PATCH] libxl: Use g_autofree for char* where easily possible
Jim Fehlig
jfehlig at suse.com
Wed Feb 17 02:07:34 UTC 2021
On 2/16/21 6:40 PM, 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 at 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(-)
[snip]
> @@ -135,7 +133,7 @@ libxlLoggerNew(const char *logDir, virLogPriority minLevel)
> {
> xentoollog_logger_libvirt logger;
> libxlLoggerPtr logger_out = NULL;
> - char *path = NULL;
> + g_autofree char *path = NULL;
>
> switch (minLevel) {
> case VIR_LOG_DEBUG:
> @@ -164,7 +162,6 @@ libxlLoggerNew(const char *logDir, virLogPriority minLevel)
> logger_out = XTL_NEW_LOGGER(libvirt, logger);
>
> cleanup:
> - VIR_FREE(path);
> return logger_out;
>
> error:
With nothing more to cleanup, this function could be reduced a bit more. I've
squashed the following into my local branch
diff --git a/src/libxl/libxl_logger.c b/src/libxl/libxl_logger.c
index 39e59d9231..1da3357c6d 100644
--- a/src/libxl/libxl_logger.c
+++ b/src/libxl/libxl_logger.c
@@ -132,7 +132,6 @@ libxlLoggerPtr
libxlLoggerNew(const char *logDir, virLogPriority minLevel)
{
xentoollog_logger_libvirt logger;
- libxlLoggerPtr logger_out = NULL;
g_autofree char *path = NULL;
switch (minLevel) {
@@ -156,17 +155,12 @@ libxlLoggerNew(const char *logDir, virLogPriority minLevel)
path = g_strdup_printf("%s/libxl-driver.log", logDir);
- if ((logger.defaultLogFile = fopen(path, "a")) == NULL)
- goto error;
+ if ((logger.defaultLogFile = fopen(path, "a")) == NULL) {
+ virHashFree(logger.files);
+ return NULL;
+ }
- logger_out = XTL_NEW_LOGGER(libvirt, logger);
-
- cleanup:
- return logger_out;
-
- error:
- virHashFree(logger.files);
- goto cleanup;
+ return XTL_NEW_LOGGER(libvirt, logger);
}
void
More information about the libvir-list
mailing list