From 533c20ca5bd7002d8983b7d48f47ff78c25347c3 Mon Sep 17 00:00:00 2001 From: Mike Yuan Date: Fri, 20 Sep 2024 23:58:14 +0200 Subject: [PATCH] machined: fix bogus error check for machine_link() --- src/machine/machine.c | 3 +-- src/machine/machined-dbus.c | 12 +++++++----- src/machine/machined.h | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/machine/machine.c b/src/machine/machine.c index 518eabed107..91e0e6be3dd 100644 --- a/src/machine/machine.c +++ b/src/machine/machine.c @@ -53,6 +53,7 @@ int machine_new(MachineClass class, const char *name, Machine **ret) { return -ENOMEM; *m = (Machine) { + .class = class, .leader = PIDREF_NULL, .vsock_cid = VMADDR_CID_ANY, }; @@ -63,8 +64,6 @@ int machine_new(MachineClass class, const char *name, Machine **ret) { return -ENOMEM; } - m->class = class; - *ret = TAKE_PTR(m); return 0; } diff --git a/src/machine/machined-dbus.c b/src/machine/machined-dbus.c index 58997e6ec1c..97a8a67236b 100644 --- a/src/machine/machined-dbus.c +++ b/src/machine/machined-dbus.c @@ -1487,7 +1487,7 @@ int manager_get_machine_by_pid(Manager *m, pid_t pid, Machine **machine) { return 1; } -int manager_add_machine(Manager *m, const char *name, Machine **_machine) { +int manager_add_machine(Manager *m, const char *name, Machine **ret) { Machine *machine; int r; @@ -1501,12 +1501,14 @@ int manager_add_machine(Manager *m, const char *name, Machine **_machine) { return r; r = machine_link(m, machine); - if (r < 0) - return 0; + if (r < 0) { + machine_free(machine); + return r; + } } - if (_machine) - *_machine = machine; + if (ret) + *ret = machine; return 0; } diff --git a/src/machine/machined.h b/src/machine/machined.h index 4dbb083e8a5..3dffcb9fe00 100644 --- a/src/machine/machined.h +++ b/src/machine/machined.h @@ -42,7 +42,7 @@ struct Manager { sd_varlink_server *varlink_machine_server; }; -int manager_add_machine(Manager *m, const char *name, Machine **_machine); +int manager_add_machine(Manager *m, const char *name, Machine **ret); int manager_get_machine_by_pid(Manager *m, pid_t pid, Machine **machine); extern const BusObjectImplementation manager_object; -- 2.47.3