]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
manager: use _cleanup_ in manager_propagate_reload()
authorDavid Tardon <dtardon@redhat.com>
Fri, 21 Apr 2023 13:15:38 +0000 (15:15 +0200)
committerDavid Tardon <dtardon@redhat.com>
Fri, 28 Apr 2023 07:27:37 +0000 (09:27 +0200)
src/core/manager.c

index 97e9f492dc930a1970d9a992dc711b56040a0e3e..ce9b27ece7955b0f9ff0af470638fac9541286c9 100644 (file)
@@ -2112,7 +2112,7 @@ int manager_add_job_by_name_and_warn(Manager *m, JobType type, const char *name,
 
 int manager_propagate_reload(Manager *m, Unit *unit, JobMode mode, sd_bus_error *e) {
         int r;
-        Transaction *tr;
+        _cleanup_(transaction_abort_and_freep) Transaction *tr = NULL;
 
         assert(m);
         assert(unit);
@@ -2126,22 +2126,17 @@ int manager_propagate_reload(Manager *m, Unit *unit, JobMode mode, sd_bus_error
         /* We need an anchor job */
         r = transaction_add_job_and_dependencies(tr, JOB_NOP, unit, NULL, false, false, true, true, e);
         if (r < 0)
-                goto tr_abort;
+                return r;
 
         /* Failure in adding individual dependencies is ignored, so this always succeeds. */
         transaction_add_propagate_reload_jobs(tr, unit, tr->anchor_job, mode == JOB_IGNORE_DEPENDENCIES, e);
 
         r = transaction_activate(tr, m, mode, NULL, e);
         if (r < 0)
-                goto tr_abort;
+                return r;
 
-        transaction_free(tr);
+        tr = transaction_free(tr);
         return 0;
-
-tr_abort:
-        transaction_abort(tr);
-        transaction_free(tr);
-        return r;
 }
 
 Job *manager_get_job(Manager *m, uint32_t id) {