[PATCH 0/2] qemu: monitor opening cleanups

Two drive-by fixes from when I was working on a different topic. Peter Krempa (2): qemuMonitorOpenUnix: Refactor cleanup qemuMonitorOpen: Refactor cleanup src/qemu/qemu_monitor.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) -- 2.34.1

Use VIR_AUTOFREE for the temp socket so that the 'error:' label can be removed. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_monitor.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index fcd39b80c6..04b5cce6fb 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -233,7 +233,7 @@ qemuMonitorOpenUnix(const char *monitor, unsigned long long timeout) { struct sockaddr_un addr; - int monfd; + VIR_AUTOCLOSE monfd = -1; virTimeBackOffVar timebackoff; int ret = -1; @@ -248,12 +248,12 @@ qemuMonitorOpenUnix(const char *monitor, if (virStrcpyStatic(addr.sun_path, monitor) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Monitor path %s too big for destination"), monitor); - goto error; + return -1; } if (retry) { if (virTimeBackOffStart(&timebackoff, 1, timeout * 1000) < 0) - goto error; + return -1; while (virTimeBackOffWait(&timebackoff)) { ret = connect(monfd, (struct sockaddr *)&addr, sizeof(addr)); @@ -269,28 +269,27 @@ qemuMonitorOpenUnix(const char *monitor, virReportSystemError(errno, "%s", _("failed to connect to monitor socket")); - goto error; + return -1; } if (ret != 0) { virReportSystemError(errno, "%s", _("monitor socket did not show up")); - goto error; + return -1; } } else { ret = connect(monfd, (struct sockaddr *) &addr, sizeof(addr)); if (ret < 0) { virReportSystemError(errno, "%s", _("failed to connect to monitor socket")); - goto error; + return -1; } } - return monfd; + ret = monfd; + monfd = -1; - error: - VIR_FORCE_CLOSE(monfd); - return -1; + return ret; } -- 2.34.1

Use VIR_AUTOCLOSE to avoid a 'cleanup' label. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_monitor.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 04b5cce6fb..95ed6199b1 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -725,7 +725,7 @@ qemuMonitorOpen(virDomainObj *vm, qemuMonitorCallbacks *cb, void *opaque) { - int fd = -1; + VIR_AUTOCLOSE fd = -1; qemuMonitor *ret = NULL; timeout += QEMU_DEFAULT_MONITOR_WAIT; @@ -734,7 +734,7 @@ qemuMonitorOpen(virDomainObj *vm, virReportError(VIR_ERR_INTERNAL_ERROR, _("unable to handle monitor type: %s"), virDomainChrTypeToString(config->type)); - goto cleanup; + return NULL; } virObjectUnlock(vm); @@ -743,18 +743,16 @@ qemuMonitorOpen(virDomainObj *vm, virObjectLock(vm); if (fd < 0) - goto cleanup; + return NULL; if (!virDomainObjIsActive(vm)) { virReportError(VIR_ERR_OPERATION_FAILED, "%s", _("domain is not running")); - goto cleanup; + return NULL; } ret = qemuMonitorOpenInternal(vm, fd, context, cb, opaque); - cleanup: - if (!ret) - VIR_FORCE_CLOSE(fd); + fd = -1; return ret; } -- 2.34.1

On Thu, 2022-02-10 at 09:33 +0100, Peter Krempa wrote:
Two drive-by fixes from when I was working on a different topic.
Peter Krempa (2): qemuMonitorOpenUnix: Refactor cleanup qemuMonitorOpen: Refactor cleanup
src/qemu/qemu_monitor.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-)
Reviewed-by: Tim Wiederhake <twiederh@redhat.com>
participants (2)
-
Peter Krempa
-
Tim Wiederhake