X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fmachine%2Fmachine.c;h=6c01617cfb8852d3ae4fd88fc58d4fe73166f3d7;hb=10bc4cd469fc677892b07748ec85804ca120825f;hp=40189269e0157820aa4ed7d678e436c3a8cefb50;hpb=da927ba997d68401563b927f92e6e40e021a8e5c;p=elogind.git diff --git a/src/machine/machine.c b/src/machine/machine.c index 40189269e..6c01617cf 100644 --- a/src/machine/machine.c +++ b/src/machine/machine.c @@ -32,9 +32,10 @@ #include "fileio.h" #include "special.h" #include "unit-name.h" -#include "machine.h" #include "bus-util.h" #include "bus-error.h" +#include "machine.h" +#include "machine-dbus.h" Machine* machine_new(Manager *manager, const char *name) { Machine *m; @@ -201,6 +202,9 @@ int machine_save(Machine *m) { goto finish; } + free(temp_path); + temp_path = NULL; + if (m->unit) { char *sl; @@ -212,12 +216,11 @@ int machine_save(Machine *m) { } finish: - if (r < 0) { - if (temp_path) - unlink(temp_path); + if (temp_path) + unlink(temp_path); + if (r < 0) log_error_errno(r, "Failed to save machine data %s: %m", m->state_file); - } return r; } @@ -259,8 +262,7 @@ int machine_load(Machine *m) { if (r == -ENOENT) return 0; - log_error_errno(r, "Failed to read %s: %m", m->state_file); - return r; + return log_error_errno(r, "Failed to read %s: %m", m->state_file); } if (id) @@ -406,12 +408,10 @@ static int machine_stop_scope(Machine *m) { if (!m->unit) return 0; - if (!m->registered) { - r = manager_stop_unit(m->manager, m->unit, &error, &job); - if (r < 0) { - log_error("Failed to stop machine scope: %s", bus_error_message(&error, r)); - return r; - } + r = manager_stop_unit(m->manager, m->unit, &error, &job); + if (r < 0) { + log_error("Failed to stop machine scope: %s", bus_error_message(&error, r)); + return r; } free(m->scope_job);