]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: use automatic cleanup more
authorDavid Tardon <dtardon@redhat.com>
Fri, 11 May 2018 16:43:40 +0000 (18:43 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 12 May 2018 16:29:41 +0000 (18:29 +0200)
src/core/device.c
src/core/swap.c
src/core/unit.c

index 565410fd36149a41a2971d6116eaa1abd1c2d152..0bf329c3d244f17704c2ebdde483189839c774d5 100644 (file)
@@ -704,7 +704,7 @@ static Unit *device_following(Unit *u) {
 
 static int device_following_set(Unit *u, Set **_set) {
         Device *d = DEVICE(u), *other;
-        Set *set;
+        _cleanup_(set_freep) Set *set = NULL;
         int r;
 
         assert(d);
@@ -722,21 +722,17 @@ static int device_following_set(Unit *u, Set **_set) {
         LIST_FOREACH_AFTER(same_sysfs, other, d) {
                 r = set_put(set, other);
                 if (r < 0)
-                        goto fail;
+                        return r;
         }
 
         LIST_FOREACH_BEFORE(same_sysfs, other, d) {
                 r = set_put(set, other);
                 if (r < 0)
-                        goto fail;
+                        return r;
         }
 
-        *_set = set;
+        *_set = TAKE_PTR(set);
         return 1;
-
-fail:
-        set_free(set);
-        return r;
 }
 
 static void device_shutdown(Manager *m) {
index 4d9f4df6edac55d12bbd81e1db59375699217bd4..965d96f4da12d9a50297caf0faa03c6fceed0a2a 100644 (file)
@@ -1240,7 +1240,7 @@ static Unit *swap_following(Unit *u) {
 
 static int swap_following_set(Unit *u, Set **_set) {
         Swap *s = SWAP(u), *other;
-        Set *set;
+        _cleanup_(set_freep) Set *set = NULL;
         int r;
 
         assert(s);
@@ -1258,15 +1258,11 @@ static int swap_following_set(Unit *u, Set **_set) {
         LIST_FOREACH_OTHERS(same_devnode, other, s) {
                 r = set_put(set, other);
                 if (r < 0)
-                        goto fail;
+                        return r;
         }
 
-        *_set = set;
+        *_set = TAKE_PTR(set);
         return 1;
-
-fail:
-        set_free(set);
-        return r;
 }
 
 static void swap_shutdown(Manager *m) {
index 09ed43a104c5104ba4dfb46a7b449c29caa39481..5b7beca369e1756c1478734b53137979a312b0d5 100644 (file)
@@ -3815,7 +3815,7 @@ int unit_kill(Unit *u, KillWho w, int signo, sd_bus_error *error) {
 }
 
 static Set *unit_pid_set(pid_t main_pid, pid_t control_pid) {
-        Set *pid_set;
+        _cleanup_(set_freep) Set *pid_set = NULL;
         int r;
 
         pid_set = set_new(NULL);
@@ -3826,20 +3826,16 @@ static Set *unit_pid_set(pid_t main_pid, pid_t control_pid) {
         if (main_pid > 0) {
                 r = set_put(pid_set, PID_TO_PTR(main_pid));
                 if (r < 0)
-                        goto fail;
+                        return NULL;
         }
 
         if (control_pid > 0) {
                 r = set_put(pid_set, PID_TO_PTR(control_pid));
                 if (r < 0)
-                        goto fail;
+                        return NULL;
         }
 
-        return pid_set;
-
-fail:
-        set_free(pid_set);
-        return NULL;
+        return TAKE_PTR(pid_set);
 }
 
 int unit_kill_common(