From a9516cceecbf98e34619e2978192f50665d82528 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 30 Nov 2020 16:23:55 +0100 Subject: [PATCH 05/16] qemuMonitorAddObject: Refactor cleanup Remove freeing/clearing of @props as the function doesn't guarantee that it happens on success, rename the variable hodling copy of the alias and use g_autofree to automatically free it and remove the cleanup label as well as 'ret' variable. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/qemu/qemu_monitor.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index f573292e37..188d7700a7 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -2940,13 +2940,12 @@ qemuMonitorAddObject(qemuMonitorPtr mon, { const char *type = NULL; const char *id = NULL; - char *tmp = NULL; - int ret = -1; + g_autofree char *aliasCopy = NULL; if (!*props) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("object props can't be NULL")); - goto cleanup; + return -1; } type = virJSONValueObjectGetString(*props, "qom-type"); @@ -2954,31 +2953,25 @@ qemuMonitorAddObject(qemuMonitorPtr mon, VIR_DEBUG("type=%s id=%s", NULLSTR(type), NULLSTR(id)); - QEMU_CHECK_MONITOR_GOTO(mon, cleanup); + QEMU_CHECK_MONITOR(mon); if (!id || !type) { virReportError(VIR_ERR_INTERNAL_ERROR, _("missing alias or qom-type for qemu object '%s'"), NULLSTR(type)); - goto cleanup; + return -1; } if (alias) - tmp = g_strdup(id); + aliasCopy = g_strdup(id); if (qemuMonitorJSONAddObject(mon, props) < 0) - goto cleanup; + return -1; if (alias) - *alias = g_steal_pointer(&tmp); - - ret = 0; + *alias = g_steal_pointer(&aliasCopy); - cleanup: - VIR_FREE(tmp); - virJSONValueFree(*props); - *props = NULL; - return ret; + return 0; } -- 2.27.0