X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fmachine%2Fmachine.c;h=223eb0f3641be7677742a0f9d7dc1075a404b97c;hb=63c372cb9df3bee01e3bf8cd7f96f336bddda846;hp=b2831187965e4a86e843daa56bfe08cdeec34c63;hpb=c00a4c8f55e51be98274e86beba14117e25dab9c;p=elogind.git diff --git a/src/machine/machine.c b/src/machine/machine.c index b28311879..223eb0f36 100644 --- a/src/machine/machine.c +++ b/src/machine/machine.c @@ -202,23 +202,25 @@ int machine_save(Machine *m) { goto finish; } + free(temp_path); + temp_path = NULL; + if (m->unit) { char *sl; /* Create a symlink from the unit name to the machine * name, so that we can quickly find the machine for * each given unit */ - sl = strappenda("/run/systemd/machines/unit:", m->unit); + sl = strjoina("/run/systemd/machines/unit:", m->unit); symlink(m->name, sl); } 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; } @@ -230,7 +232,7 @@ static void machine_unlink(Machine *m) { char *sl; - sl = strappenda("/run/systemd/machines/unit:", m->unit); + sl = strjoina("/run/systemd/machines/unit:", m->unit); unlink(sl); } @@ -338,7 +340,7 @@ static int machine_start_scope(Machine *m, sd_bus_message *properties, sd_bus_er if (!scope) return log_oom(); - description = strappenda(m->class == MACHINE_VM ? "Virtual Machine " : "Container ", m->name); + description = strjoina(m->class == MACHINE_VM ? "Virtual Machine " : "Container ", m->name); r = manager_start_scope(m->manager, scope, m->leader, SPECIAL_MACHINE_SLICE, description, properties, error, &job); if (r < 0) {