From: Sam Leonard Date: Mon, 22 Apr 2024 15:11:28 +0000 (+0100) Subject: machined: fix invalid edge case in machine_new X-Git-Tag: v256-rc1~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c9e89db860bc912f0e67044e2ff739373beb50ed;p=thirdparty%2Fsystemd.git machined: fix invalid edge case in machine_new --- diff --git a/src/machine/machine.c b/src/machine/machine.c index 309bffa3c80..3e5012ebb6c 100644 --- a/src/machine/machine.c +++ b/src/machine/machine.c @@ -88,20 +88,25 @@ Machine* machine_free(Machine *m) { while (m->operations) operation_free(m->operations); - if (m->in_gc_queue) + if (m->in_gc_queue) { + assert(m->manager); LIST_REMOVE(gc_queue, m->manager->machine_gc_queue, m); + } machine_release_unit(m); free(m->scope_job); - (void) hashmap_remove(m->manager->machines, m->name); + if (m->manager) { + (void) hashmap_remove(m->manager->machines, m->name); - if (m->manager->host_machine == m) - m->manager->host_machine = NULL; + if (m->manager->host_machine == m) + m->manager->host_machine = NULL; + } if (pidref_is_set(&m->leader)) { - (void) hashmap_remove_value(m->manager->machine_leaders, PID_TO_PTR(m->leader.pid), m); + if (m->manager) + (void) hashmap_remove_value(m->manager->machine_leaders, PID_TO_PTR(m->leader.pid), m); pidref_done(&m->leader); }