From 5c7c1db2f54af8c9c5aa59ec640d4c9216e6ad64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Mon, 13 Dec 2021 19:22:28 +0100 Subject: [PATCH] openvz: refactor openvzConnectListDefinedDomains MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Ján Tomko Reviewed-by: Michal Privoznik --- src/openvz/openvz_driver.c | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index fa5ded54ec..f1ee540a8b 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -1382,22 +1382,23 @@ static int openvzConnectNumOfDomains(virConnectPtr conn) static int openvzConnectListDefinedDomains(virConnectPtr conn G_GNUC_UNUSED, char **const names, int nnames) { int got = 0; - int veid, outfd = -1, ret; - int rc = -1; - char vpsname[32]; - char buf[32]; - char *endptr; - virCommand *cmd = virCommandNewArgList(VZLIST, - "-ovpsid", "-H", "-S", NULL); + VIR_AUTOCLOSE outfd = -1; + int ret = -1; + g_autoptr(virCommand) cmd = virCommandNewArgList(VZLIST, + "-ovpsid", "-H", "-S", NULL); /* the -S options lists only stopped domains */ virCommandSetOutputFD(cmd, &outfd); if (virCommandRunAsync(cmd, NULL) < 0) - goto out; + goto cleanup; while (got < nnames) { - ret = openvz_readline(outfd, buf, 32); - if (!ret) + char vpsname[32]; + char buf[32]; + char *endptr; + int veid; + + if (openvz_readline(outfd, buf, 32) == 0) break; if (virStrToLong_i(buf, &endptr, 10, &veid) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -1405,27 +1406,24 @@ static int openvzConnectListDefinedDomains(virConnectPtr conn G_GNUC_UNUSED, continue; } g_snprintf(vpsname, sizeof(vpsname), "%d", veid); - names[got] = g_strdup(vpsname); - got ++; + names[got++] = g_strdup(vpsname); } if (virCommandWait(cmd, NULL) < 0) - goto out; + goto cleanup; if (VIR_CLOSE(outfd) < 0) { virReportSystemError(errno, "%s", _("failed to close file")); - goto out; + goto cleanup; } - rc = got; - out: - VIR_FORCE_CLOSE(outfd); - virCommandFree(cmd); - if (rc < 0) { + ret = got; + cleanup: + if (ret < 0) { for (; got >= 0; got--) VIR_FREE(names[got]); } - return rc; + return ret; } static int openvzGetProcessInfo(unsigned long long *cpuTime, int vpsid)