From: Peter Krempa Date: Thu, 3 Feb 2022 12:51:34 +0000 (+0100) Subject: qemuMonitorOpenUnix: Refactor cleanup X-Git-Tag: v8.1.0-rc1~142 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0e01846dbfac1b0075e4290285416328d1b4fe8f;p=thirdparty%2Flibvirt.git qemuMonitorOpenUnix: Refactor cleanup Use VIR_AUTOFREE for the temp socket so that the 'error:' label can be removed. Signed-off-by: Peter Krempa Reviewed-by: Tim Wiederhake --- 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; }