diff options
author | David Tardon <dtardon@redhat.com> | 2022-11-30 16:42:08 +0100 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2022-12-14 09:57:35 +0100 |
commit | 38f514409ac2f98b04a15c6e47a659a43618bd3b (patch) | |
tree | 1b8df0f97ab608d246f183a16e11aa1ab7c5b4e7 | |
parent | d2b6485385566e84d7e13d272aeeb42b5afc3e34 (diff) | |
download | systemd-38f514409ac2f98b04a15c6e47a659a43618bd3b.tar.gz |
machine: use _cleanup_ in machine_new
-rw-r--r-- | src/machine/machine.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/machine/machine.c b/src/machine/machine.c index de7b20ff2d..ca43c977b0 100644 --- a/src/machine/machine.c +++ b/src/machine/machine.c @@ -33,8 +33,10 @@ #include "unit-name.h" #include "user-util.h" +DEFINE_TRIVIAL_CLEANUP_FUNC(Machine*, machine_free); + Machine* machine_new(Manager *manager, MachineClass class, const char *name) { - Machine *m; + _cleanup_(machine_freep) Machine *m = NULL; assert(manager); assert(class < _MACHINE_CLASS_MAX); @@ -50,27 +52,22 @@ Machine* machine_new(Manager *manager, MachineClass class, const char *name) { m->name = strdup(name); if (!m->name) - goto fail; + return NULL; if (class != MACHINE_HOST) { m->state_file = path_join("/run/systemd/machines", m->name); if (!m->state_file) - goto fail; + return NULL; } m->class = class; if (hashmap_put(manager->machines, m->name, m) < 0) - goto fail; + return NULL; m->manager = manager; - return m; - -fail: - free(m->state_file); - free(m->name); - return mfree(m); + return TAKE_PTR(m); } Machine* machine_free(Machine *m) { |