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; + return -1; - ret = 1; - - cleanup: - unlink(state_file); - return ret; + return 1; }