Move the unlinking of the state file right after reading it so that we
can get rid of the cleanup section.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/logging/log_daemon.c | 33 ++++++++++++++-------------------
1 file changed, 14 insertions(+), 19 deletions(-)
diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c
index a2a5b5f547..de6bf082e8 100644
--- a/src/logging/log_daemon.c
+++ b/src/logging/log_daemon.c
@@ -436,61 +436,56 @@ virLogDaemonPostExecRestart(const char *state_file,
{
const char *gotmagic;
g_autofree char *wantmagic = NULL;
- int ret = -1;
g_autofree char *state = NULL;
g_autoptr(virJSONValue) object = NULL;
+ int rc;
VIR_DEBUG("Running post-restart exec");
if (!virFileExists(state_file)) {
VIR_DEBUG("No restart state file %s present",
state_file);
- ret = 0;
- goto cleanup;
+ return 0;
}
- if (virFileReadAll(state_file,
- 1024 * 1024 * 10, /* 10 MB */
- &state) < 0)
- goto cleanup;
+ rc = virFileReadAll(state_file, 1024 * 1024 * 10, /* 10 MB */ &state);
+ unlink(state_file);
+
+ if (rc < 0)
+ return -1;
VIR_DEBUG("Loading state %s", state);
if (!(object = virJSONValueFromString(state)))
- goto cleanup;
+ return -1;
gotmagic = virJSONValueObjectGetString(object, "magic");
if (!gotmagic) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Missing magic data in JSON document"));
- goto cleanup;
+ return -1;
}
if (!(wantmagic = virLogDaemonGetExecRestartMagic()))
- goto cleanup;
+ return -1;
if (STRNEQ(gotmagic, wantmagic)) {
VIR_WARN("Found restart exec file with old magic %s vs wanted %s",
gotmagic, wantmagic);
- ret = 0;
- goto cleanup;
+ return 0;
}
/* Re-claim PID file now as we will not be daemonizing */
if (pid_file &&
(*pid_file_fd = virPidFileAcquirePath(pid_file, false, getpid())) < 0)
- goto cleanup;
+ return -1;
if (!(logDaemon = virLogDaemonNewPostExecRestart(object,
privileged,
config)))
- goto cleanup;
-
- ret = 1;
+ return -1;
- cleanup:
- unlink(state_file);
- return ret;
+ return 1;
}
--
2.31.1