]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: use TAKE_PTR() and TAKE_FD() macros
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 5 Apr 2018 05:26:26 +0000 (14:26 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 5 Apr 2018 05:26:26 +0000 (14:26 +0900)
136 files changed:
src/analyze/analyze.c
src/basic/bpf-program.c
src/basic/btrfs-util.c
src/basic/cgroup-util.c
src/basic/cpu-set-util.c
src/basic/fileio.c
src/basic/hexdecoct.c
src/basic/khash.c
src/basic/locale-util.c
src/basic/set.c
src/basic/socket-util.c
src/basic/time-util.c
src/busctl/busctl.c
src/core/bpf-firewall.c
src/core/dbus-timer.c
src/core/dbus.c
src/core/execute.c
src/core/job.c
src/core/load-dropin.c
src/core/load-fragment.c
src/core/main.c
src/core/manager.c
src/core/namespace.c
src/core/service.c
src/core/socket.c
src/core/unit.c
src/coredump/coredump-vacuum.c
src/coredump/coredump.c
src/coredump/coredumpctl.c
src/hostname/hostnamed.c
src/import/curl-util.c
src/import/export-raw.c
src/import/export-tar.c
src/import/import-raw.c
src/import/import-tar.c
src/import/importd.c
src/import/pull-common.c
src/import/pull-job.c
src/import/pull-raw.c
src/import/pull-tar.c
src/journal-remote/journal-remote.c
src/journal-remote/microhttpd-util.c
src/journal/journal-file.c
src/journal/journal-vacuum.c
src/journal/journalctl.c
src/journal/journald-context.c
src/libsystemd-network/lldp-neighbor.c
src/libsystemd-network/ndisc-router.c
src/libsystemd-network/sd-dhcp-client.c
src/libsystemd-network/sd-dhcp-lease.c
src/libsystemd-network/sd-dhcp-server.c
src/libsystemd-network/sd-dhcp6-client.c
src/libsystemd-network/sd-ipv4acd.c
src/libsystemd-network/sd-ipv4ll.c
src/libsystemd-network/sd-lldp.c
src/libsystemd-network/sd-ndisc.c
src/libsystemd-network/sd-radv.c
src/libsystemd/sd-bus/bus-control.c
src/libsystemd/sd-bus/bus-creds.c
src/libsystemd/sd-bus/bus-match.c
src/libsystemd/sd-bus/bus-message.c
src/libsystemd/sd-bus/sd-bus.c
src/libsystemd/sd-device/device-enumerator.c
src/libsystemd/sd-device/device-private.c
src/libsystemd/sd-device/sd-device.c
src/libsystemd/sd-hwdb/sd-hwdb.c
src/libsystemd/sd-login/sd-login.c
src/libsystemd/sd-netlink/generic-netlink.c
src/libsystemd/sd-netlink/local-addresses.c
src/libsystemd/sd-netlink/netlink-message.c
src/libsystemd/sd-netlink/netlink-socket.c
src/libsystemd/sd-netlink/sd-netlink.c
src/libudev/libudev-hwdb.c
src/locale/keymap-util.c
src/locale/localed.c
src/login/logind-seat-dbus.c
src/login/logind-session-dbus.c
src/login/logind-user-dbus.c
src/login/logind-user.c
src/machine/image-dbus.c
src/machine/machine-dbus.c
src/machine/machined.c
src/network/netdev/wireguard.c
src/network/networkctl.c
src/network/networkd-address-label.c
src/network/networkd-address.c
src/network/networkd-fdb.c
src/network/networkd-link.c
src/network/networkd-lldp-tx.c
src/network/networkd-manager.c
src/network/networkd-radv.c
src/network/networkd-route.c
src/network/networkd-routing-policy-rule.c
src/network/wait-online/manager.c
src/nspawn/nspawn-expose-ports.c
src/nspawn/nspawn-mount.c
src/nspawn/nspawn-patch-uid.c
src/nspawn/nspawn-settings.c
src/nspawn/nspawn-setuid.c
src/nspawn/nspawn.c
src/resolve/resolved-conf.c
src/resolve/resolved-dns-answer.c
src/resolve/resolved-dns-packet.c
src/resolve/resolved-dns-query.c
src/resolve/resolved-dns-question.c
src/resolve/resolved-dns-rr.c
src/resolve/resolved-dns-scope.c
src/resolve/resolved-dns-stream.c
src/resolve/resolved-dns-synthesize.c
src/resolve/resolved-dns-transaction.c
src/resolve/resolved-dns-trust-anchor.c
src/resolve/resolved-dns-zone.c
src/resolve/resolved-manager.c
src/resolve/resolved-mdns.c
src/rfkill/rfkill.c
src/shared/acl-util.c
src/shared/bus-unit-util.c
src/shared/bus-util.c
src/shared/cgroup-show.c
src/shared/conf-parser.c
src/shared/dissect-image.c
src/shared/dns-domain.c
src/shared/efivars.c
src/shared/install.c
src/shared/loop-util.c
src/shared/machine-image.c
src/shared/path-lookup.c
src/shared/ptyfwd.c
src/shared/seccomp-util.c
src/systemctl/systemctl.c
src/sysusers/sysusers.c
src/sysv-generator/sysv-generator.c
src/timedate/timedated.c
src/timesync/timesyncd-manager.c
src/udev/net/link-config.c
src/udev/udevd.c

index 74f4d545ea08f6926f12d0a5e84587b8a451d8f5..a6c93841fbddc07989bd17880b861dc4a902454e 100644 (file)
@@ -491,8 +491,7 @@ static int acquire_host_info(sd_bus *bus, struct host_info **hi) {
         if (r < 0)
                 return log_error_errno(r, "Failed to get host information from systemd: %s", bus_error_message(&error, r));
 
-        *hi = host;
-        host = NULL;
+        *hi = TAKE_PTR(host);
 
         return 0;
 }
index a244742f917658d9952aa15ed7c17440f82116df..2cff567dc93222126d915039cefc349cc0f2d3ea 100644 (file)
@@ -42,8 +42,8 @@ int bpf_program_new(uint32_t prog_type, BPFProgram **ret) {
         p->prog_type = prog_type;
         p->kernel_fd = -1;
 
-        *ret = p;
-        p = NULL;
+        *ret = TAKE_PTR(p);
+
         return 0;
 }
 
index 3d30497f74a7f88ad13b66bbe626684ee7440710..8b7d51f85a51de79963b69d9475103cb1669403c 100644 (file)
@@ -1841,8 +1841,7 @@ int btrfs_qgroup_find_parents(int fd, uint64_t qgroupid, uint64_t **ret) {
                 return 0;
         }
 
-        *ret = items;
-        items = NULL;
+        *ret = TAKE_PTR(items);
 
         return (int) n_items;
 }
index 67e690d6f5a2621997423a36c071cf774234ea94..530ad136ba61aec60f00217df98d272bf711df55 100644 (file)
@@ -2448,8 +2448,7 @@ int cg_kernel_controllers(Set **ret) {
                         return r;
         }
 
-        *ret = controllers;
-        controllers = NULL;
+        *ret = TAKE_PTR(controllers);
 
         return 0;
 }
index 9f0a61a18ea50ee893c2928fa4092e0451c38d9a..818cb38081bf99302adeea2d1acf57ac0f6852e8 100644 (file)
@@ -111,10 +111,8 @@ int parse_cpu_set_internal(
         }
 
         /* On success, sets *cpu_set and returns ncpus for the system. */
-        if (c) {
-                *cpu_set = c;
-                c = NULL;
-        }
+        if (c)
+                *cpu_set = TAKE_PTR(c);
 
         return (int) ncpus;
 }
index f807842c311b48f72e3476f2527ecd3002845080..d0cb033bbb307372bc0fe6aa70768b79619fedf4 100644 (file)
@@ -1606,8 +1606,7 @@ int read_line(FILE *f, size_t limit, char **ret) {
         if (ret) {
                 buffer[n] = 0;
 
-                *ret = buffer;
-                buffer = NULL;
+                *ret = TAKE_PTR(buffer);
         }
 
         return (int) count;
index 0764521b6ff006921ac10191a40e75f229f8c80d..7f8a74acf6a2fc7857715794635658631376fd6c 100644 (file)
@@ -125,8 +125,7 @@ int unhexmem(const char *p, size_t l, void **mem, size_t *len) {
 
         *z = 0;
 
-        *mem = r;
-        r = NULL;
+        *mem = TAKE_PTR(r);
         *len = (l + 1) / 2;
 
         return 0;
@@ -482,8 +481,7 @@ int unbase32hexmem(const char *p, size_t l, bool padding, void **mem, size_t *_l
 
         *z = 0;
 
-        *mem = r;
-        r = NULL;
+        *mem = TAKE_PTR(r);
         *_len = len;
 
         return 0;
@@ -751,8 +749,7 @@ int unbase64mem(const char *p, size_t l, void **ret, size_t *ret_size) {
         if (ret_size)
                 *ret_size = (size_t) (z - buf);
 
-        *ret = buf;
-        buf = NULL;
+        *ret = TAKE_PTR(buf);
 
         return 0;
 }
index 6463faf3e12ac72a5b9e3edb59765b2fdb1a2fce..b3e1dc444840d05691022f7cb00b3d5fabe851eb 100644 (file)
@@ -216,8 +216,7 @@ int khash_dup(khash *h, khash **ret) {
         if (copy->fd < 0)
                 return -errno;
 
-        *ret = copy;
-        copy = NULL;
+        *ret = TAKE_PTR(copy);
 
         return 0;
 }
index de3d7c8c89100ee1ab26f5c9e3186cb3101ed411..2080be24be5197fe5b0a27384a5a215a82c93dad 100644 (file)
@@ -196,8 +196,7 @@ int get_locales(char ***ret) {
 
         strv_sort(l);
 
-        *ret = l;
-        l = NULL;
+        *ret = TAKE_PTR(l);
 
         return 0;
 }
index e554e825ebbeed4dd33ea6c99b1cf3357372d43e..da2cc0fb4a827f1d8a257f0bfc4d3c3490b75287 100644 (file)
@@ -18,6 +18,7 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include "alloc-util.h"
 #include "set.h"
 
 int set_make(Set **ret, const struct hash_ops *hash_ops HASHMAP_DEBUG_PARAMS, void *add, ...) {
@@ -55,8 +56,7 @@ int set_make(Set **ret, const struct hash_ops *hash_ops HASHMAP_DEBUG_PARAMS, vo
                 va_end(ap);
         }
 
-        *ret = s;
-        s = NULL;
+        *ret = TAKE_PTR(s);
 
         return 0;
 }
index fd26ae713798a31965de37bb4c2dab97c971c4c3..1bfd125e01473ad788bdc2f0ff80ed16597aea95 100644 (file)
@@ -1017,8 +1017,7 @@ int getpeergroups(int fd, gid_t **ret) {
         if ((socklen_t) (int) n != n)
                 return -E2BIG;
 
-        *ret = d;
-        d = NULL;
+        *ret = TAKE_PTR(d);
 
         return (int) n;
 }
index 4a341e208fb97e1a985aad9ddda91a66835972c7..b99d257b774e33054d19cd66bca85e78546dbe59 100644 (file)
@@ -1283,8 +1283,7 @@ int get_timezones(char ***ret) {
         } else if (errno != ENOENT)
                 return -errno;
 
-        *ret = zones;
-        zones = NULL;
+        *ret = TAKE_PTR(zones);
 
         return 0;
 }
index 2f9250e2ae62bcbb0c86a99667e9f5e0299edbfd..2ac6a07624a1c33f2c4bbad2d211e019b1e2e2c7 100644 (file)
@@ -137,8 +137,7 @@ static int acquire_bus(bool set_monitor, sd_bus **ret) {
         if (r < 0)
                 return log_error_errno(r, "Failed to connect to bus: %m");
 
-        *ret = bus;
-        bus = NULL;
+        *ret = TAKE_PTR(bus);
 
         return 0;
 }
index 48666f64a282de4d416a6b5ddfb165837c5dad80..d8ce21be2bbaba13d48c6c83612b39219d0f6638 100644 (file)
@@ -311,8 +311,7 @@ static int bpf_firewall_compile_bpf(
                         return r;
         } while (false);
 
-        *ret = p;
-        p = NULL;
+        *ret = TAKE_PTR(p);
 
         return 0;
 }
index 1eedf217fe2c8b7d60ccc3d3a4a637be1392342d..1fa19966c894cbb994d8b4cdbeb9556da6ba1356 100644 (file)
@@ -290,8 +290,7 @@ static int bus_timer_set_transient_property(
                                         return -ENOMEM;
 
                                 v->base = b;
-                                v->calendar_spec = c;
-                                c = NULL;
+                                v->calendar_spec = TAKE_PTR(c);
 
                                 LIST_PREPEND(value, t->values, v);
                         }
@@ -377,8 +376,7 @@ static int bus_timer_set_transient_property(
                                 return -ENOMEM;
 
                         v->base = TIMER_CALENDAR;
-                        v->calendar_spec = c;
-                        c = NULL;
+                        v->calendar_spec = TAKE_PTR(c);
 
                         LIST_PREPEND(value, t->values, v);
                 }
index ace6ffa8cf3a87a04c5d10878761608b2117ea0c..ca6b070637613b572e94bc79bb275a4e3ef626cc 100644 (file)
@@ -914,8 +914,7 @@ int bus_init_api(Manager *m) {
         if (r < 0)
                 return log_error_errno(r, "Failed to set up API bus: %m");
 
-        m->api_bus = bus;
-        bus = NULL;
+        m->api_bus = TAKE_PTR(bus);
 
         r = manager_enqueue_sync_bus_names(m);
         if (r < 0)
@@ -976,8 +975,7 @@ int bus_init_system(Manager *m) {
         if (r < 0)
                 return log_error_errno(r, "Failed to set up system bus: %m");
 
-        m->system_bus = bus;
-        bus = NULL;
+        m->system_bus = TAKE_PTR(bus);
 
         return 0;
 }
index 664a3b96f7c11befda1c919eab269be713f84357..bfc72ed021edda3d70137aa955f8ac7da4cbe399 100644 (file)
@@ -1757,9 +1757,8 @@ static int build_pass_environment(const ExecContext *c, char ***ret) {
                 if (!GREEDY_REALLOC(pass_env, n_bufsize, n_env + 2))
                         return -ENOMEM;
 
-                pass_env[n_env++] = x;
+                pass_env[n_env++] = TAKE_PTR(x);
                 pass_env[n_env] = NULL;
-                x = NULL;
         }
 
         *ret = TAKE_PTR(pass_env);
index 1b3534a7a6f372be382134e419efd4fe2dd276f4..daa8b09616a2aab69a5e9ef17cf3428a5df71396 100644 (file)
@@ -1439,8 +1439,7 @@ int job_get_before(Job *j, Job*** ret) {
 
         n = sort_job_list(list, n);
 
-        *ret = list;
-        list = NULL;
+        *ret = TAKE_PTR(list);
 
         return (int) n;
 }
@@ -1489,8 +1488,7 @@ int job_get_after(Job *j, Job*** ret) {
 
         n = sort_job_list(list, n);
 
-        *ret = list;
-        list = NULL;
+        *ret = TAKE_PTR(list);
 
         return (int) n;
 }
index 57ed686d1fc524864ad109767367fa2eb67dfa81..0702219f243a078910cc76b0d889b2844bcc4ef5 100644 (file)
@@ -146,10 +146,9 @@ int unit_load_dropin(Unit *u) {
         if (r <= 0)
                 return 0;
 
-        if (!u->dropin_paths) {
-                u->dropin_paths = l;
-                l = NULL;
-        } else {
+        if (!u->dropin_paths)
+                u->dropin_paths = TAKE_PTR(l);
+        else {
                 r = strv_extend_strv(&u->dropin_paths, l, true);
                 if (r < 0)
                         return log_oom();
index 887eb1cf49beb0dda391b63861448c4b9ceab8dd..be4af94fc8f6169ce119f6a858b1652d83a5e85e 100644 (file)
@@ -731,9 +731,9 @@ int config_parse_exec(
 
                         if (!GREEDY_REALLOC(n, nbufsize, nlen + 2))
                                 return log_oom();
-                        n[nlen++] = resolved;
+
+                        n[nlen++] = TAKE_PTR(resolved);
                         n[nlen] = NULL;
-                        resolved = NULL;
                 }
 
                 if (!n || !n[0]) {
@@ -747,15 +747,13 @@ int config_parse_exec(
                 if (!nce)
                         return log_oom();
 
-                nce->argv = n;
-                nce->path = path;
+                nce->argv = TAKE_PTR(n);
+                nce->path = TAKE_PTR(path);
                 nce->flags = flags;
 
                 exec_command_append_list(e, nce);
 
                 /* Do not _cleanup_free_ these. */
-                n = NULL;
-                path = NULL;
                 nce = NULL;
 
                 rvalue = p;
@@ -2397,9 +2395,8 @@ int config_parse_pass_environ(
                 if (!GREEDY_REALLOC(n, nbufsize, nlen + 2))
                         return log_oom();
 
-                n[nlen++] = k;
+                n[nlen++] = TAKE_PTR(k);
                 n[nlen] = NULL;
-                k = NULL;
         }
 
         if (n) {
@@ -2474,9 +2471,8 @@ int config_parse_unset_environ(
                 if (!GREEDY_REALLOC(n, nbufsize, nlen + 2))
                         return log_oom();
 
-                n[nlen++] = k;
+                n[nlen++] = TAKE_PTR(k);
                 n[nlen] = NULL;
-                k = NULL;
         }
 
         if (n) {
@@ -4762,9 +4758,7 @@ static int load_from_path(Unit *u, const char *path) {
                         return r;
         }
 
-        free(u->fragment_path);
-        u->fragment_path = filename;
-        filename = NULL;
+        free_and_replace(u->fragment_path, filename);
 
         if (u->source_path) {
                 if (stat(u->source_path, &st) >= 0)
index 9e95b6f110bd58d3dc1a140376a96ed2c4d062f5..b0090e7e520500a8af11eafa7cc07bd1a1017f4f 100644 (file)
@@ -1131,11 +1131,8 @@ static int prepare_reexecute(Manager *m, FILE **_f, FDSet **_fds, bool switching
         if (r < 0)
                 return log_error_errno(r, "Failed to disable O_CLOEXEC for serialization fds: %m");
 
-        *_f = f;
-        *_fds = fds;
-
-        f = NULL;
-        fds = NULL;
+        *_f = TAKE_PTR(f);
+        *_fds = TAKE_PTR(fds);
 
         return 0;
 }
index e67f7446c723975c845de9f6f8fa4ab0c6bc2920..ff6761e1616baa0dbd69c23cf69a96b155329ad0 100644 (file)
@@ -800,8 +800,8 @@ int manager_new(UnitFileScope scope, unsigned test_run_flags, Manager **_m) {
         /* Note that we do not set up the notify fd here. We do that after deserialization,
          * since they might have gotten serialized across the reexec. */
 
-        *_m = m;
-        m = NULL;
+        *_m = TAKE_PTR(m);
+
         return 0;
 }
 
@@ -1894,8 +1894,7 @@ int manager_get_dump_string(Manager *m, char **ret) {
 
         f = safe_fclose(f);
 
-        *ret = dump;
-        dump = NULL;
+        *ret = TAKE_PTR(dump);
 
         return 0;
 }
index a11c8e01471d2aaba391da3f23b657e4cfd9b36c..1aba9022be14ebc4e7638ebbfadcd64b3422c031 100644 (file)
@@ -1395,14 +1395,13 @@ int bind_mount_add(BindMount **b, unsigned *n, const BindMount *item) {
         *b = c;
 
         c[(*n) ++] = (BindMount) {
-                .source = s,
-                .destination = d,
+                .source = TAKE_PTR(s),
+                .destination = TAKE_PTR(d),
                 .read_only = item->read_only,
                 .recursive = item->recursive,
                 .ignore_enoent = item->ignore_enoent,
         };
 
-        s = d = NULL;
         return 0;
 }
 
@@ -1449,11 +1448,10 @@ int temporary_filesystem_add(
         *t = c;
 
         c[(*n) ++] = (TemporaryFileSystem) {
-                .path = p,
-                .options = o,
+                .path = TAKE_PTR(p),
+                .options = TAKE_PTR(o),
         };
 
-        p = o = NULL;
         return 0;
 }
 
@@ -1491,8 +1489,7 @@ static int setup_one_tmp_dir(const char *id, const char *prefix, char **path) {
                         return -errno;
         }
 
-        *path = x;
-        x = NULL;
+        *path = TAKE_PTR(x);
 
         return 0;
 }
index a39c95da558910e71012df2f73994f91988d7d76..bd1851ac979e0037e3ad725722de4b79907ca0eb 100644 (file)
@@ -1250,10 +1250,8 @@ static int service_collect_fds(Service *s,
                                 continue;
 
                         if (!rfds) {
-                                rfds = cfds;
+                                rfds = TAKE_PTR(cfds);
                                 rn_socket_fds = cn_fds;
-
-                                cfds = NULL;
                         } else {
                                 int *t;
 
@@ -1305,14 +1303,11 @@ static int service_collect_fds(Service *s,
                 rfd_names[n_fds] = NULL;
         }
 
-        *fds = rfds;
-        *fd_names = rfd_names;
+        *fds = TAKE_PTR(rfds);
+        *fd_names = TAKE_PTR(rfd_names);
         *n_socket_fds = rn_socket_fds;
         *n_storage_fds = rn_storage_fds;
 
-        rfds = NULL;
-        rfd_names = NULL;
-
         return 0;
 }
 
index 6410939dca206c72b438934f23d1ebc407ab6b70..d9a951b07fc4c5b4e4583e43b807221bb078b216 100644 (file)
@@ -629,8 +629,7 @@ int socket_acquire_peer(Socket *s, int fd, SocketPeer **p) {
 
         remote->socket = s;
 
-        *p = remote;
-        remote = NULL;
+        *p = TAKE_PTR(remote);
 
         return 1;
 }
@@ -2365,8 +2364,7 @@ static void socket_enter_running(Socket *s, int cfd) {
                 cfd = -1; /* We passed ownership of the fd to the service now. Forget it here. */
                 s->n_connections++;
 
-                service->peer = p; /* Pass ownership of the peer reference */
-                p = NULL;
+                service->peer = TAKE_PTR(p); /* Pass ownership of the peer reference */
 
                 r = manager_add_job(UNIT(s)->manager, JOB_START, UNIT(service), JOB_REPLACE, &error, NULL);
                 if (r < 0) {
index 72f475ab140b3c1228bd83b95ca3dcc86134313e..9ee50d38823b092f583261d3f273e1bac6a48bf2 100644 (file)
@@ -139,8 +139,8 @@ int unit_new_for_name(Manager *m, size_t size, const char *name, Unit **ret) {
         if (r < 0)
                 return r;
 
-        *ret = u;
-        u = NULL;
+        *ret = TAKE_PTR(u);
+
         return r;
 }
 
@@ -266,13 +266,11 @@ int unit_add_name(Unit *u, const char *text) {
         if (u->type == _UNIT_TYPE_INVALID) {
                 u->type = t;
                 u->id = s;
-                u->instance = i;
+                u->instance = TAKE_PTR(i);
 
                 LIST_PREPEND(units_by_type, u->manager->units_by_type[t], u);
 
                 unit_init(u);
-
-                i = NULL;
         }
 
         s = NULL;
index e27512167c2647daf14bd2ac6eeea02e9b2273be..d7ecf85bbf3160174503541abb736cfa06463820 100644 (file)
@@ -227,8 +227,7 @@ int coredump_vacuum(int exclude_fd, uint64_t keep_free, uint64_t max_use) {
                                 if (r < 0)
                                         return log_oom();
 
-                                c = n;
-                                n = NULL;
+                                c = TAKE_PTR(n);
                         }
 
                         c->n_files++;
index 6fbfe58bd64ed4b6102b4d552a9e72c15447b60e..6a10fd1e06cf8f7c2f7ab9f110ecd1659a9ef4a7 100644 (file)
@@ -432,14 +432,11 @@ static int save_external_coredump(
                 if (tmp)
                         unlink_noerrno(tmp);
 
-                *ret_filename = fn_compressed;     /* compressed */
-                *ret_node_fd = fd_compressed;      /* compressed */
-                *ret_data_fd = fd;                 /* uncompressed */
+                *ret_filename = TAKE_PTR(fn_compressed);     /* compressed */
+                *ret_node_fd = TAKE_FD(fd_compressed);      /* compressed */
+                *ret_data_fd = TAKE_FD(fd);                 /* uncompressed */
                 *ret_size = (uint64_t) st.st_size; /* uncompressed */
 
-                fn_compressed = NULL;
-                fd = fd_compressed = -1;
-
                 return 0;
 
         fail_compressed:
@@ -454,14 +451,11 @@ uncompressed:
         if (r < 0)
                 goto fail;
 
-        *ret_filename = fn;
-        *ret_data_fd = fd;
+        *ret_filename = TAKE_PTR(fn);
+        *ret_data_fd = TAKE_FD(fd);
         *ret_node_fd = -1;
         *ret_size = (uint64_t) st.st_size;
 
-        fn = NULL;
-        fd = -1;
-
         return 0;
 
 fail:
@@ -497,11 +491,9 @@ static int allocate_journal_field(int fd, size_t size, char **ret, size_t *ret_s
                 return -EIO;
         }
 
-        *ret = field;
+        *ret = TAKE_PTR(field);
         *ret_size = size + 9;
 
-        field = NULL;
-
         return 0;
 }
 
index b0a00cda3788eea2a45db4f8b0479ec15c00c7db..d2e23de7aa49304ee5aaa496d94944816e25e322 100644 (file)
@@ -146,8 +146,7 @@ static int acquire_journal(sd_journal **ret, char **matches) {
                 log_debug("Journal filter: %s", filter);
         }
 
-        *ret = j;
-        j = NULL;
+        *ret = TAKE_PTR(j);
 
         return 0;
 }
index 1c8c76934ce737f93662f5d2452941f389a7784b..370bd614868d9ec70680da50224ae1ac32efffd9 100644 (file)
@@ -688,8 +688,7 @@ static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) {
         if (r < 0)
                 return log_error_errno(r, "Failed to attach bus to event loop: %m");
 
-        *_bus = bus;
-        bus = NULL;
+        *_bus = TAKE_PTR(bus);
 
         return 0;
 }
index 62bbaa500da680cbf0a61a0cbcb4ccc734543bae..94315f1f7bb2e13bd7f5c80bb24ee389a667f47b 100644 (file)
@@ -272,8 +272,7 @@ int curl_glue_new(CurlGlue **glue, sd_event *event) {
         if (curl_multi_setopt(g->curl, CURLMOPT_TIMERFUNCTION, curl_glue_timer_callback) != CURLM_OK)
                 return -EINVAL;
 
-        *glue = g;
-        g = NULL;
+        *glue = TAKE_PTR(g);
 
         return 0;
 }
index 9cab838b9654ec694299a4e7ebf649c8eb5ed4da..bdad19f1eaf44b5c7662a77e306460d54fef5625 100644 (file)
@@ -122,8 +122,7 @@ int raw_export_new(
                         return r;
         }
 
-        *ret = e;
-        e = NULL;
+        *ret = TAKE_PTR(e);
 
         return 0;
 }
index dafe3e1c88f378283ffea8b1ee53559edbfe0a1f..ef444008d960cd56a1d4b46bd79aa30906e52ba4 100644 (file)
@@ -126,8 +126,7 @@ int tar_export_new(
                         return r;
         }
 
-        *ret = e;
-        e = NULL;
+        *ret = TAKE_PTR(e);
 
         return 0;
 }
index 032b3dcda2ee41943bcf3151a57ede1a58c43466..7f6a7202747a4f851883546bdcbc783d89e00482 100644 (file)
@@ -141,8 +141,7 @@ int raw_import_new(
                         return r;
         }
 
-        *ret = i;
-        i = NULL;
+        *ret = TAKE_PTR(i);
 
         return 0;
 }
index 09c7654adca567431068ba605242e1ba200d3037..1c03308628f2f0d0cd2c8b415f659ef59612fd9a 100644 (file)
@@ -148,8 +148,7 @@ int tar_import_new(
                         return r;
         }
 
-        *ret = i;
-        i = NULL;
+        *ret = TAKE_PTR(i);
 
         return 0;
 }
index 55e61b485ff675f6150b8b2c82ba443bd551b115..220ac7e795161be142269a55973bd2a32121f57e 100644 (file)
@@ -187,8 +187,7 @@ static int transfer_new(Manager *m, Transfer **ret) {
         t->manager = m;
         t->id = id;
 
-        *ret = t;
-        t = NULL;
+        *ret = TAKE_PTR(t);
 
         return 0;
 }
@@ -639,8 +638,7 @@ static int manager_new(Manager **ret) {
         if (r < 0)
                 return r;
 
-        *ret = m;
-        m = NULL;
+        *ret = TAKE_PTR(m);
 
         return 0;
 }
index 92f2692c817e4868bc2ae0f61da4d6c00ada86c0..dcd07d49b2e3406c522b6eff110e837847da6958 100644 (file)
@@ -258,8 +258,7 @@ int pull_make_auxiliary_job(
         job->on_finished = on_finished;
         job->compressed_max = job->uncompressed_max = 1ULL * 1024ULL * 1024ULL;
 
-        *ret = job;
-        job = NULL;
+        *ret = TAKE_PTR(job);
 
         return 0;
 }
index 2b71766798633f84465b7fd812fe0552596c2f83..0d5f2d20861e3500316b412164ebf17e2e347e27 100644 (file)
@@ -581,8 +581,7 @@ int pull_job_new(PullJob **ret, const char *url, CurlGlue *glue, void *userdata)
         if (!j->url)
                 return -ENOMEM;
 
-        *ret = j;
-        j = NULL;
+        *ret = TAKE_PTR(j);
 
         return 0;
 }
index 9784141871a1b8a52dd776dcb7a4955a784135bf..ce0dea43a5694cf80326e91353923f616899fe86 100644 (file)
@@ -166,8 +166,7 @@ int raw_pull_new(
         i->glue->on_finished = pull_job_curl_on_finished;
         i->glue->userdata = i;
 
-        *ret = i;
-        i = NULL;
+        *ret = TAKE_PTR(i);
 
         return 0;
 }
index 6ee63bdad583d7a1f468a2c1a6766cd763eacace..10772fbaca2bd8a727b604c224fb3f13e6ba7bac 100644 (file)
@@ -159,8 +159,7 @@ int tar_pull_new(
         i->glue->on_finished = pull_job_curl_on_finished;
         i->glue->userdata = i;
 
-        *ret = i;
-        i = NULL;
+        *ret = TAKE_PTR(i);
 
         return 0;
 }
index ff46023920216962a82af809b0d56ba5f24da6ee..da52e5b86ee605dbd10aa13c77fa76297d5f4e2c 100644 (file)
@@ -259,8 +259,8 @@ static int get_writer(RemoteServer *s, const char *host,
                         return r;
         }
 
-        *writer = w;
-        w = NULL;
+        *writer = TAKE_PTR(w);
+
         return 0;
 }
 
index 2466c4f2b581d6d5ad4567b784b009b852994896..fe588eddfb1942b0c879c156116ad2ca2652b14f 100644 (file)
@@ -314,10 +314,8 @@ int check_permissions(struct MHD_Connection *connection, int *code, char **hostn
 
         log_debug("Connection from %s", buf);
 
-        if (hostname) {
-                *hostname = buf;
-                buf = NULL;
-        }
+        if (hostname)
+                *hostname = TAKE_PTR(buf);
 
         r = verify_cert_authorized(session);
         if (r < 0) {
index eab78074b58de9dff80b20ed89e573c4d1bf8fe4..3ea44128b10bea8644a3c9bba71f76c8db94f11f 100644 (file)
@@ -1939,8 +1939,7 @@ int journal_file_enable_post_change_timer(JournalFile *f, sd_event *e, usec_t t)
         if (r < 0)
                 return r;
 
-        f->post_change_timer = timer;
-        timer = NULL;
+        f->post_change_timer = TAKE_PTR(timer);
         f->post_change_timer_period = t;
 
         return r;
index db36a6ab804622a6c22f0bfc825b3a97c5c0ac4a..d6d8ccf75cffc7083dad47e5998caaef44420e7a 100644 (file)
@@ -299,7 +299,7 @@ int journal_directory_vacuum(
                         goto finish;
                 }
 
-                list[n_list].filename = p;
+                list[n_list].filename = TAKE_PTR(p);
                 list[n_list].usage = size;
                 list[n_list].seqnum = seqnum;
                 list[n_list].realtime = realtime;
@@ -307,7 +307,6 @@ int journal_directory_vacuum(
                 list[n_list].have_seqnum = have_seqnum;
                 n_list++;
 
-                p = NULL;
                 sum += size;
         }
 
index fa2127c2b6cc6609d1eeba5ca2422cc8fc11d4c3..bcb75befe1f08990c0d0a03fbfc6cc19b7c190c2 100644 (file)
@@ -921,10 +921,9 @@ static int parse_argv(int argc, char *argv[]) {
                         if (!v)
                                 return log_oom();
 
-                        if (!arg_output_fields) {
-                                arg_output_fields = v;
-                                v = NULL;
-                        } else {
+                        if (!arg_output_fields)
+                                arg_output_fields = TAKE_PTR(v);
+                        else {
                                 r = strv_extend_strv(&arg_output_fields, v, true);
                                 if (r < 0)
                                         return log_oom();
@@ -1229,8 +1228,7 @@ static int discover_next_boot(sd_journal *j,
         if (r < 0)
                 return r;
 
-        *ret = next_boot;
-        next_boot = NULL;
+        *ret = TAKE_PTR(next_boot);
 
         return 0;
 }
@@ -1342,8 +1340,7 @@ static int get_boots(
                                 }
                         }
                         LIST_INSERT_AFTER(boot_list, head, tail, current);
-                        tail = current;
-                        current = NULL;
+                        tail = TAKE_PTR(current);
                         count++;
                 }
         }
@@ -1508,8 +1505,8 @@ static int get_possible_units(
                 }
         }
 
-        *units = found;
-        found = NULL;
+        *units = TAKE_PTR(found);
+
         return 0;
 }
 
index f5345e4cb29ee6cbb13883ae7222676b28ca15f9..19e802d7c82aa78fd1a8111b39cf6493a13539ea 100644 (file)
@@ -439,14 +439,11 @@ static int client_context_read_extra_fields(
         free(c->extra_fields_iovec);
         free(c->extra_fields_data);
 
-        c->extra_fields_iovec = iovec;
+        c->extra_fields_iovec = TAKE_PTR(iovec);
         c->extra_fields_n_iovec = n_iovec;
-        c->extra_fields_data = data;
+        c->extra_fields_data = TAKE_PTR(data);
         c->extra_fields_mtime = timespec_load_nsec(&st.st_mtim);
 
-        iovec = NULL;
-        data = NULL;
-
         return 0;
 }
 
index 1a6ea288aa8296607b5ede0c81a5eaaf696ad03e..84231091d08c18e2162bef69ea7a0c65f1ece078 100644 (file)
@@ -674,8 +674,7 @@ _public_ int sd_lldp_neighbor_from_raw(sd_lldp_neighbor **ret, const void *raw,
         if (r < 0)
                 return r;
 
-        *ret = n;
-        n = NULL;
+        *ret = TAKE_PTR(n);
 
         return r;
 }
index 2954928d001c9e99e8f13ebee7fa871aea6b5397..4584f59d1e422bf64e79274e73f8b955d684f07f 100644 (file)
@@ -82,8 +82,7 @@ _public_ int sd_ndisc_router_from_raw(sd_ndisc_router **ret, const void *raw, si
         if (r < 0)
                 return r;
 
-        *ret = rt;
-        rt = NULL;
+        *ret = TAKE_PTR(rt);
 
         return r;
 }
@@ -765,8 +764,7 @@ _public_ int sd_ndisc_router_dnssl_get_domains(sd_ndisc_router *rt, char ***ret)
                 return 0;
         }
 
-        *ret = l;
-        l = NULL;
+        *ret = TAKE_PTR(l);
 
         return k;
 }
index 9cf49747e09b19afbbd8c387c68f92af44083e48..a8b0a81484e00c651f96af313e973806eea2e51f 100644 (file)
@@ -682,8 +682,7 @@ static int client_message_init(
 
         *_optlen = optlen;
         *_optoffset = optoffset;
-        *ret = packet;
-        packet = NULL;
+        *ret = TAKE_PTR(packet);
 
         return 0;
 }
@@ -1288,8 +1287,7 @@ static int client_handle_offer(sd_dhcp_client *client, DHCPMessage *offer, size_
         }
 
         sd_dhcp_lease_unref(client->lease);
-        client->lease = lease;
-        lease = NULL;
+        client->lease = TAKE_PTR(lease);
 
         log_dhcp_client(client, "OFFER");
 
@@ -1370,8 +1368,7 @@ static int client_handle_ack(sd_dhcp_client *client, DHCPMessage *ack, size_t le
                 client->lease = sd_dhcp_lease_unref(client->lease);
         }
 
-        client->lease = lease;
-        lease = NULL;
+        client->lease = TAKE_PTR(lease);
 
         log_dhcp_client(client, "ACK");
 
@@ -1966,8 +1963,7 @@ int sd_dhcp_client_new(sd_dhcp_client **ret, int anonymize) {
         if (!client->req_opts)
                 return -ENOMEM;
 
-        *ret = client;
-        client = NULL;
+        *ret = TAKE_PTR(client);
 
         return 0;
 }
index 9db0a9389817d603897452d080d6568f2b8169f9..d33e208a00391b3d382fab87a9d25dc7dbe74d4b 100644 (file)
@@ -1235,8 +1235,7 @@ int dhcp_lease_load(sd_dhcp_lease **ret, const char *lease_file) {
                         return r;
         }
 
-        *ret = lease;
-        lease = NULL;
+        *ret = TAKE_PTR(lease);
 
         return 0;
 }
index 25f5b378bc40a73c1598fd5a044c1c865c7d177f..e88dcd0ac7ea2169dab19a3d3ca07e5dbcfb32d8 100644 (file)
@@ -213,8 +213,7 @@ int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex) {
         server->default_lease_time = DIV_ROUND_UP(DHCP_DEFAULT_LEASE_TIME_USEC, USEC_PER_SEC);
         server->max_lease_time = DIV_ROUND_UP(DHCP_MAX_LEASE_TIME_USEC, USEC_PER_SEC);
 
-        *ret = server;
-        server = NULL;
+        *ret = TAKE_PTR(server);
 
         return 0;
 }
@@ -446,8 +445,7 @@ static int server_message_init(sd_dhcp_server *server, DHCPPacket **ret,
         memcpy(&packet->dhcp.chaddr, &req->message->chaddr, ETH_ALEN);
 
         *_optoffset = optoffset;
-        *ret = packet;
-        packet = NULL;
+        *ret = TAKE_PTR(packet);
 
         return 0;
 }
index 056bfa3d3d98c9373068b51dcfdd896d9ef97ea2..ff88c2bca95b8aa03134f460b42757d559c283bf 100644 (file)
@@ -1466,8 +1466,7 @@ int sd_dhcp6_client_new(sd_dhcp6_client **ret) {
         for (t = 0; t < client->req_opts_len; t++)
                 client->req_opts[t] = htobe16(default_req_opts[t]);
 
-        *ret = client;
-        client = NULL;
+        *ret = TAKE_PTR(client);
 
         return 0;
 }
index 7cf4f031de531dffbde79f48af61619275d6337d..ff36f3eec1ee4e31ec828adbf6bb4537bdbad2da 100644 (file)
@@ -153,8 +153,7 @@ int sd_ipv4acd_new(sd_ipv4acd **ret) {
         acd->ifindex = -1;
         acd->fd = -1;
 
-        *ret = acd;
-        acd = NULL;
+        *ret = TAKE_PTR(acd);
 
         return 0;
 }
@@ -207,8 +206,7 @@ static int ipv4acd_set_next_wakeup(sd_ipv4acd *acd, usec_t usec, usec_t random_u
         (void) sd_event_source_set_description(timer, "ipv4acd-timer");
 
         sd_event_source_unref(acd->timer_event_source);
-        acd->timer_event_source = timer;
-        timer = NULL;
+        acd->timer_event_source = TAKE_PTR(timer);
 
         return 0;
 }
index f3d09eb30abcaee42336af64622c16bd0f75cb92..0ac4c88255824d48ea6adee028ad05d8632f92e2 100644 (file)
@@ -115,8 +115,7 @@ int sd_ipv4ll_new(sd_ipv4ll **ret) {
         if (r < 0)
                 return r;
 
-        *ret = ll;
-        ll = NULL;
+        *ret = TAKE_PTR(ll);
 
         return 0;
 }
index 2c0541618485b61bdec9fe6e4772a483e7e9060a..54b5e975adcd538f98e4a4464a437a879e1b546e 100644 (file)
@@ -402,8 +402,7 @@ _public_ int sd_lldp_new(sd_lldp **ret) {
         if (r < 0)
                 return r;
 
-        *ret = lldp;
-        lldp = NULL;
+        *ret = TAKE_PTR(lldp);
 
         return 0;
 }
index b5c6d6e84d47994e9d3f54750d6078f3662d61d2..c17df429c19edac6303a5d493c9de7e2e65e34b3 100644 (file)
@@ -166,8 +166,7 @@ _public_ int sd_ndisc_new(sd_ndisc **ret) {
         nd->n_ref = 1;
         nd->fd = -1;
 
-        *ret = nd;
-        nd = NULL;
+        *ret = TAKE_PTR(nd);
 
         return 0;
 }
index f30d6164eafb745bb10dcb4c95d59c3da6542916..06fc0fb746d3de14a7c39009ebf344c7bce60544 100644 (file)
@@ -51,8 +51,7 @@ _public_ int sd_radv_new(sd_radv **ret) {
 
         LIST_HEAD_INIT(ra->prefixes);
 
-        *ret = ra;
-        ra = NULL;
+        *ret = TAKE_PTR(ra);
 
         return 0;
 }
@@ -670,9 +669,7 @@ _public_ int sd_radv_set_rdnss(sd_radv *ra, uint32_t lifetime,
 
         memcpy(opt_rdnss + 1, dns, n_dns * sizeof(struct in6_addr));
 
-        free(ra->rdnss);
-        ra->rdnss = opt_rdnss;
-        opt_rdnss = NULL;
+        free_and_replace(ra->rdnss, opt_rdnss);
 
         ra->n_rdnss = n_dns;
 
@@ -724,9 +721,7 @@ _public_ int sd_radv_set_dnssl(sd_radv *ra, uint32_t lifetime,
                 len -= r;
         }
 
-        free(ra->dnssl);
-        ra->dnssl = opt_dnssl;
-        opt_dnssl = NULL;
+        free_and_replace(ra->dnssl, opt_dnssl);
 
         return 0;
 }
@@ -755,8 +750,7 @@ _public_ int sd_radv_prefix_new(sd_radv_prefix **ret) {
 
         LIST_INIT(prefix, p);
 
-        *ret = p;
-        p = NULL;
+        *ret = TAKE_PTR(p);
 
         return 0;
 }
index 9dd5274bf60339dd412aa4fb5fc85ad1e9eaafb9..50f2b3fc1afc65e9b728ac33786c26b885d4bfea 100644 (file)
@@ -431,14 +431,11 @@ _public_ int sd_bus_list_names(sd_bus *bus, char ***acquired, char ***activatabl
                 if (r < 0)
                         return r;
 
-                *activatable = y;
-                y = NULL;
+                *activatable = TAKE_PTR(y);
         }
 
-        if (acquired) {
-                *acquired = x;
-                x = NULL;
-        }
+        if (acquired)
+                *acquired = TAKE_PTR(x);
 
         return 0;
 }
@@ -734,10 +731,8 @@ _public_ int sd_bus_get_name_creds(
                         return r;
         }
 
-        if (creds) {
-                *creds = c;
-                c = NULL;
-        }
+        if (creds)
+                *creds = TAKE_PTR(c);
 
         return 0;
 }
@@ -810,8 +805,8 @@ _public_ int sd_bus_get_owner_creds(sd_bus *bus, uint64_t mask, sd_bus_creds **r
         if (r < 0)
                 return r;
 
-        *ret = c;
-        c = NULL;
+        *ret = TAKE_PTR(c);
+
         return 0;
 }
 
index b6ef4a0fe54614fe8a1728d80ac65a70102df7cd..945d428c99e95238150ab050d05c62dbe7d0ec5c 100644 (file)
@@ -1344,7 +1344,7 @@ int bus_creds_extend_by_pid(sd_bus_creds *c, uint64_t mask, sd_bus_creds **ret)
         if (r < 0)
                 return r;
 
-        *ret = n;
-        n = NULL;
+        *ret = TAKE_PTR(n);
+
         return 0;
 }
index 8d798c0a58f11aad5a9022eb1e26cd7565fd4651..03073d8647ea31af86e28bc66460c4436bf2bf83 100644 (file)
@@ -903,11 +903,10 @@ int bus_match_parse(
                 }
 
                 components[n_components].type = t;
-                components[n_components].value_str = value;
+                components[n_components].value_str = TAKE_PTR(value);
                 components[n_components].value_u8 = u;
                 n_components++;
 
-                value = NULL;
 
                 if (q[quoted] == 0)
                         break;
index c76f6e87ba654ebdfa9394b32d9b4eb2c9d535af..af0050becb9942c1afc2479e44759b6d7fae4106 100644 (file)
@@ -513,8 +513,7 @@ int bus_message_from_header(
         }
 
         m->bus = sd_bus_ref(bus);
-        *ret = m;
-        m = NULL;
+        *ret = TAKE_PTR(m);
 
         return 0;
 }
@@ -5869,8 +5868,7 @@ int bus_message_remarshal(sd_bus *bus, sd_bus_message **m) {
                 return r;
 
         sd_bus_message_unref(*m);
-        *m = n;
-        n = NULL;
+        *m = TAKE_PTR(n);
 
         return 0;
 }
index 36c866cd8fe103d1d5c311e851db83dbcc2c7999..c5df7ee6e4997198d2daf83dc3acd56eaba4170f 100644 (file)
@@ -524,8 +524,7 @@ static int synthesize_connected_signal(sd_bus *bus) {
 
         /* Insert at the very front */
         memmove(bus->rqueue + 1, bus->rqueue, sizeof(sd_bus_message*) * bus->rqueue_size);
-        bus->rqueue[0] = m;
-        m = NULL;
+        bus->rqueue[0] = TAKE_PTR(m);
         bus->rqueue_size++;
 
         return 0;
@@ -2775,8 +2774,8 @@ static int process_running(sd_bus *bus, bool hint_priority, int64_t priority, sd
                 if (r < 0)
                         return r;
 
-                *ret = m;
-                m = NULL;
+                *ret = TAKE_PTR(m);
+
                 return 1;
         }
 
@@ -2935,10 +2934,8 @@ static int process_closing(sd_bus *bus, sd_bus_message **ret) {
         bus->exit_triggered = true;
         (void) bus_exit_now(bus);
 
-        if (ret) {
-                *ret = m;
-                m = NULL;
-        }
+        if (ret)
+                *ret = TAKE_PTR(m);
 
         r = 1;
 
index cd9ec042bf40e9b7fd40c012d5aca729074a754d..3b90bc83836c327168a47c4803556fb54cee1c2c 100644 (file)
@@ -71,8 +71,7 @@ _public_ int sd_device_enumerator_new(sd_device_enumerator **ret) {
         enumerator->n_ref = 1;
         enumerator->type = _DEVICE_ENUMERATION_TYPE_INVALID;
 
-        *ret = enumerator;
-        enumerator = NULL;
+        *ret = TAKE_PTR(enumerator);
 
         return 0;
 }
index 77f0f4b2eee164b9d767a8a31b6efff152aa98cf..19bb20fb9b5260f51db223d1aa2df258a87ad89c 100644 (file)
@@ -586,8 +586,7 @@ int device_new_from_strv(sd_device **ret, char **strv) {
         if (r < 0)
                 return r;
 
-        *ret = device;
-        device = NULL;
+        *ret = TAKE_PTR(device);
 
         return 0;
 }
@@ -635,8 +634,7 @@ int device_new_from_nulstr(sd_device **ret, uint8_t *nulstr, size_t len) {
         if (r < 0)
                 return r;
 
-        *ret = device;
-        device = NULL;
+        *ret = TAKE_PTR(device);
 
         return 0;
 }
@@ -812,8 +810,7 @@ int device_shallow_clone(sd_device *old_device, sd_device **new_device) {
 
         ret->devnum = old_device->devnum;
 
-        *new_device = ret;
-        ret = NULL;
+        *new_device = TAKE_PTR(ret);
 
         return 0;
 }
@@ -835,8 +832,7 @@ int device_clone_with_db(sd_device *old_device, sd_device **new_device) {
 
         ret->sealed = true;
 
-        *new_device = ret;
-        ret = NULL;
+        *new_device = TAKE_PTR(ret);
 
         return 0;
 }
@@ -861,8 +857,7 @@ int device_new_from_synthetic_event(sd_device **new_device, const char *syspath,
         if (r < 0)
                 return r;
 
-        *new_device = ret;
-        ret = NULL;
+        *new_device = TAKE_PTR(ret);
 
         return 0;
 }
index 0273ec3d0e3c96207d4025cbae991cab717ed6ae..c0a276ba68acbfa675b525fb605bef476d3e79e5 100644 (file)
@@ -46,7 +46,7 @@
 #include "util.h"
 
 int device_new_aux(sd_device **ret) {
-        _cleanup_(sd_device_unrefp) sd_device *device = NULL;
+        sd_device *device = NULL;
 
         assert(ret);
 
@@ -58,7 +58,6 @@ int device_new_aux(sd_device **ret) {
         device->watch_handle = -1;
 
         *ret = device;
-        device = NULL;
 
         return 0;
 }
@@ -247,8 +246,7 @@ _public_ int sd_device_new_from_syspath(sd_device **ret, const char *syspath) {
         if (r < 0)
                 return r;
 
-        *ret = device;
-        device = NULL;
+        *ret = TAKE_PTR(device);
 
         return 0;
 }
@@ -659,8 +657,7 @@ _public_ int sd_device_new_from_device_id(sd_device **ret, const char *id) {
                 if (ifr.ifr_ifindex != ifindex)
                         return -ENODEV;
 
-                *ret = device;
-                device = NULL;
+                *ret = TAKE_PTR(device);
 
                 return 0;
         }
@@ -1833,8 +1830,7 @@ _public_ int sd_device_get_sysattr_value(sd_device *device, const char *sysattr,
         if (r < 0)
                 return r;
 
-        *_value = value;
-        value = NULL;
+        *_value = TAKE_PTR(value);
 
         return 0;
 }
index 9418e8cf381b3f235b48bd1af8425561d2863671..4b66159790e40c6de0acab511e349489fbf1d3ad 100644 (file)
@@ -373,8 +373,7 @@ _public_ int sd_hwdb_new(sd_hwdb **ret) {
         log_debug("strings           %8"PRIu64" bytes", le64toh(hwdb->head->strings_len));
         log_debug("nodes             %8"PRIu64" bytes", le64toh(hwdb->head->nodes_len));
 
-        *ret = hwdb;
-        hwdb = NULL;
+        *ret = TAKE_PTR(hwdb);
 
         return 0;
 }
index 2a4eede9f8ce13670343aa32bb6eb5ed21dc1a79..d12d9dc6cf92e743d03e36343b926efe817c3e0c 100644 (file)
@@ -741,15 +741,11 @@ _public_ int sd_seat_get_sessions(const char *seat, char ***sessions, uid_t **ui
 
         r = strv_length(a);
 
-        if (sessions) {
-                *sessions = a;
-                a = NULL;
-        }
+        if (sessions)
+                *sessions = TAKE_PTR(a);
 
-        if (uids) {
-                *uids = b;
-                b = NULL;
-        }
+        if (uids)
+                *uids = TAKE_PTR(b);
 
         if (n_uids)
                 *n_uids = n;
@@ -864,10 +860,8 @@ _public_ int sd_get_uids(uid_t **users) {
                         r++;
         }
 
-        if (users) {
-                *users = l;
-                l = NULL;
-        }
+        if (users)
+                *users = TAKE_PTR(l);
 
         return r;
 }
index 771658d9aef01e9b00cb19931b3ebb658489142d..347bf4cbd56043512874783fb3d75616a62a84eb 100644 (file)
@@ -58,8 +58,7 @@ static int genl_message_new(sd_netlink *nl, sd_genl_family family, uint16_t nlms
         genl->cmd = cmd;
         genl->version = genl_families[family].version;
 
-        *ret = m;
-        m = NULL;
+        *ret = TAKE_PTR(m);
 
         return 0;
 }
index 81e55b6d9f521ed7336488711d44a3b60e4e3e7d..ff9d605ae394c2adb5262cfbaa136c82acfc8dc8 100644 (file)
@@ -158,8 +158,7 @@ int local_addresses(sd_netlink *context, int ifindex, int af, struct local_addre
 
         qsort_safe(list, n_list, sizeof(struct local_address), address_compare);
 
-        *ret = list;
-        list = NULL;
+        *ret = TAKE_PTR(list);
 
         return (int) n_list;
 }
@@ -271,8 +270,7 @@ int local_gateways(sd_netlink *context, int ifindex, int af, struct local_addres
         if (n_list > 0)
                 qsort(list, n_list, sizeof(struct local_address), address_compare);
 
-        *ret = list;
-        list = NULL;
+        *ret = TAKE_PTR(list);
 
         return (int) n_list;
 }
index 3a5f9346aa6e06f321326a6013f98e1eb5cedcce..13d4f4d225e6e6c5aa2e5eb087317d0605360b67 100644 (file)
@@ -98,8 +98,7 @@ int message_new(sd_netlink *rtnl, sd_netlink_message **ret, uint16_t type) {
         m->hdr->nlmsg_len = size;
         m->hdr->nlmsg_type = type;
 
-        *ret = m;
-        m = NULL;
+        *ret = TAKE_PTR(m);
 
         return 0;
 }
index 3474ad9ddb1b4c0a11b49be1fe7d84ac5d12ee80..7db9205d7d176c84a7e890d94770e8c9bc5f1474 100644 (file)
@@ -433,8 +433,7 @@ int socket_read_message(sd_netlink *rtnl) {
                 /* push the message onto the multi-part message stack */
                 if (first)
                         m->next = first;
-                first = m;
-                m = NULL;
+                first = TAKE_PTR(m);
         }
 
         if (len > 0)
@@ -449,8 +448,7 @@ int socket_read_message(sd_netlink *rtnl) {
                 if (r < 0)
                         return r;
 
-                rtnl->rqueue[rtnl->rqueue_size++] = first;
-                first = NULL;
+                rtnl->rqueue[rtnl->rqueue_size++] = TAKE_PTR(first);
 
                 if (multi_part && (i < rtnl->rqueue_partial_size)) {
                         /* remove the message form the partial read queue */
@@ -464,15 +462,14 @@ int socket_read_message(sd_netlink *rtnl) {
                 /* we only got a partial multi-part message, push it on the
                    partial read queue */
                 if (i < rtnl->rqueue_partial_size)
-                        rtnl->rqueue_partial[i] = first;
+                        rtnl->rqueue_partial[i] = TAKE_PTR(first);
                 else {
                         r = rtnl_rqueue_partial_make_room(rtnl);
                         if (r < 0)
                                 return r;
 
-                        rtnl->rqueue_partial[rtnl->rqueue_partial_size++] = first;
+                        rtnl->rqueue_partial[rtnl->rqueue_partial_size++] = TAKE_PTR(first);
                 }
-                first = NULL;
 
                 return 0;
         }
index 116e287bb6655f487a80f4de5147317b2c513f49..e8fc2644c5dfd276cf8419b599c81367720a50c4 100644 (file)
@@ -62,8 +62,7 @@ static int sd_netlink_new(sd_netlink **ret) {
          * responses with notifications from the kernel */
         rtnl->serial = 1;
 
-        *ret = rtnl;
-        rtnl = NULL;
+        *ret = TAKE_PTR(rtnl);
 
         return 0;
 }
@@ -90,8 +89,7 @@ int sd_netlink_new_from_netlink(sd_netlink **ret, int fd) {
 
         rtnl->fd = fd;
 
-        *ret = rtnl;
-        rtnl = NULL;
+        *ret = TAKE_PTR(rtnl);
 
         return 0;
 }
@@ -133,8 +131,7 @@ int sd_netlink_open_fd(sd_netlink **ret, int fd) {
                 return r;
         }
 
-        *ret = rtnl;
-        rtnl = NULL;
+        *ret = TAKE_PTR(rtnl);
 
         return 0;
 }
@@ -425,8 +422,7 @@ static int process_running(sd_netlink *rtnl, sd_netlink_message **ret) {
         }
 
         if (ret) {
-                *ret = m;
-                m = NULL;
+                *ret = TAKE_PTR(m);
 
                 return 1;
         }
@@ -669,10 +665,8 @@ int sd_netlink_call(sd_netlink *rtnl,
                                         return 0;
                                 }
 
-                                if (ret) {
-                                        *ret = incoming;
-                                        incoming = NULL;
-                                }
+                                if (ret)
+                                        *ret = TAKE_PTR(incoming);
 
                                 return 1;
                         }
index d2665278c1ff3d305758bedd22c530315a7f7fb3..eb71e6ebde8fc52a9413435599146c2f192ab410 100644 (file)
@@ -73,8 +73,7 @@ _public_ struct udev_hwdb *udev_hwdb_new(struct udev *udev) {
         }
 
         hwdb->refcount = 1;
-        hwdb->hwdb = hwdb_internal;
-        hwdb_internal = NULL;
+        hwdb->hwdb = TAKE_PTR(hwdb_internal);
 
         udev_list_init(udev, &hwdb->properties_list, true);
 
index 393e9b564894e2a47fccc20e3afdc87b3cc55466..d997928202bf3f1cb2a988cd175866ea54882a98 100644 (file)
@@ -666,8 +666,7 @@ int find_language_fallback(const char *lang, char **language) {
 
                 if (streq(lang, a[0])) {
                         assert(strv_length(a) == 2);
-                        *language = a[1];
-                        a[1] = NULL;
+                        *language = TAKE_PTR(a[1]);
                         return 1;
                 }
         }
index 02f5e8c6568ba42dc5661cc0886be304cdacf3ec..685c1f9f8d94b87a59c259953a2f5d7b50a3f9e9 100644 (file)
@@ -660,8 +660,7 @@ static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) {
         if (r < 0)
                 return log_error_errno(r, "Failed to attach bus to event loop: %m");
 
-        *_bus = bus;
-        bus = NULL;
+        *_bus = TAKE_PTR(bus);
 
         return 0;
 }
index 8e4e4efc81bae57c0e5a5630587e2d54cb4888c8..0b2824ee21f5d42c954c8fdd0d7b232ebfa0f6d7 100644 (file)
@@ -419,8 +419,7 @@ int seat_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***
                 }
         }
 
-        *nodes = l;
-        l = NULL;
+        *nodes = TAKE_PTR(l);
 
         return 1;
 }
index 8264a42fd45d99ba962860acc1f5820a69a1b385..8414c86a648432f70f2b166f7a552a6bbad49738 100644 (file)
@@ -666,8 +666,7 @@ int session_node_enumerator(sd_bus *bus, const char *path, void *userdata, char
                 }
         }
 
-        *nodes = l;
-        l = NULL;
+        *nodes = TAKE_PTR(l);
 
         return 1;
 }
index d5d086cfe04c0b84af993ca3ef43b0c47751b768..ef1fce8bd1783dd05e47f371a7ba95c118e41d47 100644 (file)
@@ -354,8 +354,7 @@ int user_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***
                 }
         }
 
-        *nodes = l;
-        l = NULL;
+        *nodes = TAKE_PTR(l);
 
         return 1;
 }
index 28574f49a208d57c7e086b08907d0b3915da2670..cee8be657e97f457b031b4a873ec147c877e067c 100644 (file)
@@ -100,8 +100,8 @@ int user_new(User **out, Manager *m, uid_t uid, gid_t gid, const char *name) {
         if (r < 0)
                 return r;
 
-        *out = u;
-        u = NULL;
+        *out = TAKE_PTR(u);
+
         return 0;
 }
 
index 8ba1380c81949b7be007e2d0197670f7a1ee3bf7..a0965dc6b47ded44f2a104802b22df783a621c03 100644 (file)
@@ -507,8 +507,7 @@ int image_node_enumerator(sd_bus *bus, const char *path, void *userdata, char **
                         return r;
         }
 
-        *nodes = l;
-        l = NULL;
+        *nodes = TAKE_PTR(l);
 
         return 1;
 }
index e37797f46a2c4401d47ed78402df9c5a815e50cf..208d25b3b5e152dc0a574539cd17995a5fb716af 100644 (file)
@@ -522,8 +522,7 @@ static int container_bus_new(Machine *m, sd_bus_error *error, sd_bus **ret) {
                 if (r < 0)
                         return r;
 
-                *ret = bus;
-                bus = NULL;
+                *ret = TAKE_PTR(bus);
                 break;
         }
 
@@ -647,8 +646,7 @@ int bus_machine_method_open_shell(sd_bus_message *message, void *userdata, sd_bu
         } else {
                 if (!path_is_absolute(path))
                         return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Specified path '%s' is not absolute", path);
-                args = args_wire;
-                args_wire = NULL;
+                args = TAKE_PTR(args_wire);
                 if (strv_isempty(args)) {
                         args = strv_free(args);
 
@@ -1506,8 +1504,7 @@ int machine_send_create_reply(Machine *m, sd_bus_error *error) {
         if (!m->create_message)
                 return 0;
 
-        c = m->create_message;
-        m->create_message = NULL;
+        c = TAKE_PTR(m->create_message);
 
         if (error)
                 return sd_bus_reply_method_error(c, error);
index 9fb67882e12e0c3c65424e12ab8d02a79970d00f..54f8d836a25d91b0c6d74960453f49c47512363d 100644 (file)
@@ -124,9 +124,8 @@ static int manager_add_host_machine(Manager *m) {
         t->leader = 1;
         t->id = mid;
 
-        t->root_directory = rd;
-        t->unit = unit;
-        rd = unit = NULL;
+        t->root_directory = TAKE_PTR(rd);
+        t->unit = TAKE_PTR(unit);
 
         dual_timestamp_from_boottime_or_monotonic(&t->timestamp, 0);
 
index 9025693f7020e4bd38f4c27912542da29092068c..23db87a0d5f5c4484db85ec4e9c3db3f1802910c 100644 (file)
@@ -626,15 +626,11 @@ int config_parse_wireguard_endpoint(const char *unit,
         if (!port)
                 return log_oom();
 
-        endpoint->peer = peer;
-        endpoint->host = host;
-        endpoint->port = port;
+        endpoint->peer = TAKE_PTR(peer);
+        endpoint->host = TAKE_PTR(host);
+        endpoint->port = TAKE_PTR(port);
         endpoint->netdev = netdev_ref(data);
         LIST_PREPEND(endpoints, w->unresolved_endpoints, endpoint);
-
-        peer = NULL;
-        host = NULL;
-        port = NULL;
         endpoint = NULL;
 
         return 0;
index 362f67141769e90ac28f3fbf81c2f1ff7854ec50..1c711fb07518db467e445ff9e67388eb97d534f5 100644 (file)
@@ -210,8 +210,7 @@ static int acquire_link_info_strv(sd_netlink *rtnl, char **l, LinkInfo **ret) {
 
         qsort_safe(links, c, sizeof(LinkInfo), link_info_compare);
 
-        *ret = links;
-        links = NULL;
+        *ret = TAKE_PTR(links);
 
         return (int) c;
 }
@@ -251,8 +250,7 @@ static int acquire_link_info_all(sd_netlink *rtnl, LinkInfo **ret) {
 
         qsort_safe(links, c, sizeof(LinkInfo), link_info_compare);
 
-        *ret = links;
-        links = NULL;
+        *ret = TAKE_PTR(links);
 
         return (int) c;
 }
index 4fd5fa4f58bb39dcaf0d3f3cfeb1973f34e4d12c..ed360b33914f2ad8a43fb1e1609b7ffe0e625e90 100644 (file)
@@ -36,8 +36,7 @@ int address_label_new(AddressLabel **ret) {
         if (!addrlabel)
                 return -ENOMEM;
 
-        *ret = addrlabel;
-        addrlabel = NULL;
+        *ret = TAKE_PTR(addrlabel);
 
         return 0;
 }
@@ -75,8 +74,7 @@ static int address_label_new_static(Network *network, const char *filename, unsi
 
         label = hashmap_get(network->address_labels_by_section, n);
         if (label) {
-                *ret = label;
-                label = NULL;
+                *ret = TAKE_PTR(label);
 
                 return 0;
         }
@@ -85,8 +83,7 @@ static int address_label_new_static(Network *network, const char *filename, unsi
         if (r < 0)
                 return r;
 
-        label->section = n;
-        n = NULL;
+        label->section = TAKE_PTR(n);
 
         r = hashmap_put(network->address_labels_by_section, label->section, label);
         if (r < 0)
@@ -96,8 +93,7 @@ static int address_label_new_static(Network *network, const char *filename, unsi
         LIST_APPEND(labels, network->address_labels, label);
         network->n_address_labels++;
 
-        *ret = label;
-        label = NULL;
+        *ret = TAKE_PTR(label);
 
         return 0;
 }
index 7e722b1a2ea2b7fe46a9277a40983c69df4f51f7..a61ec276ba2c8a9b13d89726e1fc1cf7fcab5d6b 100644 (file)
@@ -48,8 +48,7 @@ int address_new(Address **ret) {
         address->cinfo.ifa_prefered = CACHE_INFO_INFINITY_LIFE_TIME;
         address->cinfo.ifa_valid = CACHE_INFO_INFINITY_LIFE_TIME;
 
-        *ret = address;
-        address = NULL;
+        *ret = TAKE_PTR(address);
 
         return 0;
 }
@@ -70,8 +69,7 @@ int address_new_static(Network *network, const char *filename, unsigned section_
 
                 address = hashmap_get(network->addresses_by_section, n);
                 if (address) {
-                        *ret = address;
-                        address = NULL;
+                        *ret = TAKE_PTR(address);
 
                         return 0;
                 }
@@ -85,8 +83,7 @@ int address_new_static(Network *network, const char *filename, unsigned section_
                 return r;
 
         if (filename) {
-                address->section = n;
-                n = NULL;
+                address->section = TAKE_PTR(n);
 
                 r = hashmap_put(network->addresses_by_section, address->section, address);
                 if (r < 0)
@@ -97,8 +94,7 @@ int address_new_static(Network *network, const char *filename, unsigned section_
         LIST_APPEND(addresses, network->static_addresses, address);
         network->n_static_addresses++;
 
-        *ret = address;
-        address = NULL;
+        *ret = TAKE_PTR(address);
 
         return 0;
 }
@@ -541,8 +537,7 @@ static int address_acquire(Link *link, Address *original, Address **ret) {
 
         LIST_PREPEND(addresses, link->pool_addresses, na);
 
-        *ret = na;
-        na = NULL;
+        *ret = TAKE_PTR(na);
 
         return 0;
 }
index 380581e09aea39ee06319d2e08a7d86125ed137a..7fcf2a46fdc3dbb91b0f012ff4a8ba32cdcd1e1d 100644 (file)
@@ -48,8 +48,7 @@ int fdb_entry_new_static(
         if (section) {
                 fdb_entry = hashmap_get(network->fdb_entries_by_section, UINT_TO_PTR(section));
                 if (fdb_entry) {
-                        *ret = fdb_entry;
-                        fdb_entry = NULL;
+                        *ret = TAKE_PTR(fdb_entry);
 
                         return 0;
                 }
@@ -85,8 +84,7 @@ int fdb_entry_new_static(
         }
 
         /* return allocated FDB structure. */
-        *ret = fdb_entry;
-        fdb_entry = NULL;
+        *ret = TAKE_PTR(fdb_entry);
 
         return 0;
 }
index 2f9f7ad9e9b57ab756705de245f6f928f510d9d4..fa72023c16a61847f466b9a628b63aa7f763a6fe 100644 (file)
@@ -501,8 +501,7 @@ static int link_new(Manager *manager, sd_netlink_message *message, Link **ret) {
         if (r < 0)
                 return r;
 
-        *ret = link;
-        link = NULL;
+        *ret = TAKE_PTR(link);
 
         return 0;
 }
@@ -2973,8 +2972,7 @@ network_file_fail:
 
                         route->lifetime = lifetime;
                         sd_event_source_unref(route->expire);
-                        route->expire = expire;
-                        expire = NULL;
+                        route->expire = TAKE_PTR(expire);
                 }
         }
 
index b8d160a1f8c5122f9c30472fb367cec236825200..0645aa40e493780a6dd6502061343e59a65cef52 100644 (file)
@@ -198,10 +198,9 @@ static int lldp_make_packet(
 
         assert(p == (uint8_t*) packet + l);
 
-        *ret = packet;
+        *ret = TAKE_PTR(packet);
         *sz = l;
 
-        packet = NULL;
         return 0;
 }
 
index 1c519d8c49d574c7d2fc020e7b00286a99894381..ddebf386e74f4dbb90c18e080ef6dfb6b92f5912 100644 (file)
@@ -1444,8 +1444,7 @@ int manager_new(Manager **ret, sd_event *event) {
 
         (void) routing_policy_load_rules(m->state_file, &m->rules_saved);
 
-        *ret = m;
-        m = NULL;
+        *ret = TAKE_PTR(m);
 
         return 0;
 }
index 1cc89f3b0ad541a0a61acbec793d963c27635388..f7e14c9655a289e2c5be40a2339111ea9398459b 100644 (file)
@@ -149,8 +149,7 @@ int prefix_new_static(Network *network, const char *filename,
                 if (section_line) {
                         prefix = hashmap_get(network->prefixes_by_section, n);
                         if (prefix) {
-                                *ret = prefix;
-                                prefix = NULL;
+                                *ret = TAKE_PTR(prefix);
 
                                 return 0;
                         }
@@ -162,8 +161,7 @@ int prefix_new_static(Network *network, const char *filename,
                 return r;
 
         if (filename) {
-                prefix->section = n;
-                n = NULL;
+                prefix->section = TAKE_PTR(n);
 
                 r = hashmap_put(network->prefixes_by_section, prefix->section,
                                 prefix);
@@ -175,8 +173,7 @@ int prefix_new_static(Network *network, const char *filename,
         LIST_APPEND(prefixes, network->static_prefixes, prefix);
         network->n_static_prefixes++;
 
-        *ret = prefix;
-        prefix = NULL;
+        *ret = TAKE_PTR(prefix);
 
         return 0;
 }
index d25be44a100af42f3da0bb9ebb6fcbc56b59c6f0..709f90395ccb64fe004b4790c0aac64000729ae7 100644 (file)
@@ -76,8 +76,7 @@ int route_new(Route **ret) {
         route->lifetime = USEC_INFINITY;
         route->quickack = -1;
 
-        *ret = route;
-        route = NULL;
+        *ret = TAKE_PTR(route);
 
         return 0;
 }
@@ -98,8 +97,7 @@ int route_new_static(Network *network, const char *filename, unsigned section_li
 
                 route = hashmap_get(network->routes_by_section, n);
                 if (route) {
-                        *ret = route;
-                        route = NULL;
+                        *ret = TAKE_PTR(route);
 
                         return 0;
                 }
@@ -115,8 +113,7 @@ int route_new_static(Network *network, const char *filename, unsigned section_li
         route->protocol = RTPROT_STATIC;
 
         if (filename) {
-                route->section = n;
-                n = NULL;
+                route->section = TAKE_PTR(n);
 
                 r = hashmap_put(network->routes_by_section, route->section, route);
                 if (r < 0)
@@ -127,8 +124,7 @@ int route_new_static(Network *network, const char *filename, unsigned section_li
         LIST_PREPEND(routes, network->static_routes, route);
         network->n_static_routes++;
 
-        *ret = route;
-        route = NULL;
+        *ret = TAKE_PTR(route);
 
         return 0;
 }
@@ -689,8 +685,7 @@ int route_configure(
         }
 
         sd_event_source_unref(route->expire);
-        route->expire = expire;
-        expire = NULL;
+        route->expire = TAKE_PTR(expire);
 
         return 0;
 }
index d8f712c0699c8ab3a0638e54e48d4c47dcbff0ce..3cfff5743abfd4a84d54374336b20e312569115b 100644 (file)
@@ -406,8 +406,7 @@ static int routing_policy_rule_new_static(Network *network, const char *filename
 
         rule = hashmap_get(network->rules_by_section, n);
         if (rule) {
-                *ret = rule;
-                rule = NULL;
+                *ret = TAKE_PTR(rule);
 
                 return 0;
         }
@@ -427,8 +426,7 @@ static int routing_policy_rule_new_static(Network *network, const char *filename
         LIST_APPEND(rules, network->rules, rule);
         network->n_rules++;
 
-        *ret = rule;
-        rule = NULL;
+        *ret = TAKE_PTR(rule);
 
         return 0;
 }
index 05f030dbe78d45f76ac9084e520fc6e82494dd95..b7e53b1ed71bedcac4cb16bc8c35dd36cdb0b29b 100644 (file)
@@ -303,8 +303,7 @@ int manager_new(Manager **ret, char **interfaces, char **ignore, usec_t timeout)
         if (r < 0)
                 return r;
 
-        *ret = m;
-        m = NULL;
+        *ret = TAKE_PTR(m);
 
         return 0;
 }
index 98eb85081ee4c32fcf09f08cd3c8580840a80472..0e2da276e70899ccb06af807a055cc8bcdd1e589 100644 (file)
@@ -239,8 +239,7 @@ int expose_port_watch_rtnl(
         if (r < 0)
                 return log_error_errno(r, "Failed to add to even loop: %m");
 
-        *ret = rtnl;
-        rtnl = NULL;
+        *ret = TAKE_PTR(rtnl);
 
         return 0;
 }
index e32c6223d7f36966c2a6245d5404fd26d58511d3..465b6f4c8046c9d9a98500736cc759186a50f653 100644 (file)
@@ -282,10 +282,9 @@ int tmpfs_mount_parse(CustomMount **l, unsigned *n, const char *s) {
         if (!m)
                 return -ENOMEM;
 
-        m->destination = path;
-        m->options = opts;
+        m->destination = TAKE_PTR(path);
+        m->options = TAKE_PTR(opts);
 
-        path = opts = NULL;
         return 0;
 }
 
@@ -341,14 +340,11 @@ int overlay_mount_parse(CustomMount **l, unsigned *n, const char *s, bool read_o
         if (!m)
                 return -ENOMEM;
 
-        m->destination = destination;
-        m->source = upper;
-        m->lower = lower;
+        m->destination = TAKE_PTR(destination);
+        m->source = TAKE_PTR(upper);
+        m->lower = TAKE_PTR(lower);
         m->read_only = read_only;
 
-        upper = destination = NULL;
-        lower = NULL;
-
         return 0;
 }
 
@@ -867,8 +863,7 @@ static int get_process_controllers(Set **ret) {
                         return r;
         }
 
-        *ret = controllers;
-        controllers = NULL;
+        *ret = TAKE_PTR(controllers);
 
         return 0;
 }
index 7081ed0db2886623190a541ae3d688845ba39268..7f3f0ee1fc320e903c5c41f462188b8fcbced415 100644 (file)
@@ -175,8 +175,7 @@ static int shift_acl(acl_t acl, uid_t shift, acl_t *ret) {
                         return -errno;
         }
 
-        *ret = copy;
-        copy = NULL;
+        *ret = TAKE_PTR(copy);
 
         return !!*ret;
 }
index a1518a6e813e75bd88048691dd70a859f082e201..997e44c429e82fe708c148ef1e7c82ab68d8e72b 100644 (file)
@@ -75,8 +75,7 @@ int settings_load(FILE *f, const char *path, Settings **ret) {
         if (s->userns_chown >= 0 && s->userns_mode == _USER_NAMESPACE_MODE_INVALID)
                 s->userns_mode = USER_NAMESPACE_NO;
 
-        *ret = s;
-        s = NULL;
+        *ret = TAKE_PTR(s);
 
         return 0;
 }
index 80189ac6dbd344508c1e9334cd93bf5b2cd07a7f..0756cc64e8f0468b6bbebdad7c0ac0e2db8eddf4 100644 (file)
@@ -243,10 +243,8 @@ int change_uid_gid(const char *user, char **_home) {
         if (setresuid(uid, uid, uid) < 0)
                 return log_error_errno(errno, "setresuid() failed: %m");
 
-        if (_home) {
-                *_home = home;
-                home = NULL;
-        }
+        if (_home)
+                *_home = TAKE_PTR(home);
 
         return 0;
 }
index 384b1ea5df174144fb6522c2d8cc02bac9190970..810f1247ea2e381289d7870dac3a10eae2cf07df 100644 (file)
@@ -3074,8 +3074,7 @@ static int load_settings(void) {
 
                 f = fopen(j, "re");
                 if (f) {
-                        p = j;
-                        j = NULL;
+                        p = TAKE_PTR(j);
 
                         /* By default, we trust configuration from /etc and /run */
                         if (arg_settings_trusted < 0)
@@ -3130,8 +3129,7 @@ static int load_settings(void) {
                 arg_start_mode = settings->start_mode;
 
                 strv_free(arg_parameters);
-                arg_parameters = settings->parameters;
-                settings->parameters = NULL;
+                arg_parameters = TAKE_PTR(settings->parameters);
         }
 
         if ((arg_settings_mask & SETTING_PIVOT_ROOT) == 0 &&
@@ -3141,25 +3139,18 @@ static int load_settings(void) {
         }
 
         if ((arg_settings_mask & SETTING_WORKING_DIRECTORY) == 0 &&
-            settings->working_directory) {
-                free(arg_chdir);
-                arg_chdir = settings->working_directory;
-                settings->working_directory = NULL;
-        }
+            settings->working_directory)
+                free_and_replace(arg_chdir, settings->working_directory);
 
         if ((arg_settings_mask & SETTING_ENVIRONMENT) == 0 &&
             settings->environment) {
                 strv_free(arg_setenv);
-                arg_setenv = settings->environment;
-                settings->environment = NULL;
+                arg_setenv = TAKE_PTR(settings->environment);
         }
 
         if ((arg_settings_mask & SETTING_USER) == 0 &&
-            settings->user) {
-                free(arg_user);
-                arg_user = settings->user;
-                settings->user = NULL;
-        }
+            settings->user)
+                free_and_replace(arg_user, settings->user);
 
         if ((arg_settings_mask & SETTING_CAPABILITY) == 0) {
                 uint64_t plus;
@@ -3209,10 +3200,8 @@ static int load_settings(void) {
                         log_warning("Ignoring TemporaryFileSystem=, Bind= and BindReadOnly= settings, file %s is not trusted.", p);
                 else {
                         custom_mount_free_all(arg_custom_mounts, arg_n_custom_mounts);
-                        arg_custom_mounts = settings->custom_mounts;
+                        arg_custom_mounts = TAKE_PTR(settings->custom_mounts);
                         arg_n_custom_mounts = settings->n_custom_mounts;
-
-                        settings->custom_mounts = NULL;
                         settings->n_custom_mounts = 0;
                 }
         }
@@ -3234,28 +3223,19 @@ static int load_settings(void) {
                         arg_private_network = settings_private_network(settings);
 
                         strv_free(arg_network_interfaces);
-                        arg_network_interfaces = settings->network_interfaces;
-                        settings->network_interfaces = NULL;
+                        arg_network_interfaces = TAKE_PTR(settings->network_interfaces);
 
                         strv_free(arg_network_macvlan);
-                        arg_network_macvlan = settings->network_macvlan;
-                        settings->network_macvlan = NULL;
+                        arg_network_macvlan = TAKE_PTR(settings->network_macvlan);
 
                         strv_free(arg_network_ipvlan);
-                        arg_network_ipvlan = settings->network_ipvlan;
-                        settings->network_ipvlan = NULL;
+                        arg_network_ipvlan = TAKE_PTR(settings->network_ipvlan);
 
                         strv_free(arg_network_veth_extra);
-                        arg_network_veth_extra = settings->network_veth_extra;
-                        settings->network_veth_extra = NULL;
+                        arg_network_veth_extra = TAKE_PTR(settings->network_veth_extra);
 
-                        free(arg_network_bridge);
-                        arg_network_bridge = settings->network_bridge;
-                        settings->network_bridge = NULL;
-
-                        free(arg_network_zone);
-                        arg_network_zone = settings->network_zone;
-                        settings->network_zone = NULL;
+                        free_and_replace(arg_network_bridge, settings->network_bridge);
+                        free_and_replace(arg_network_zone, settings->network_zone);
                 }
         }
 
@@ -3266,8 +3246,7 @@ static int load_settings(void) {
                         log_warning("Ignoring Port= setting, file %s is not trusted.", p);
                 else {
                         expose_port_free_all(arg_expose_ports);
-                        arg_expose_ports = settings->expose_ports;
-                        settings->expose_ports = NULL;
+                        arg_expose_ports = TAKE_PTR(settings->expose_ports);
                 }
         }
 
@@ -3295,10 +3274,8 @@ static int load_settings(void) {
                         strv_free(arg_syscall_whitelist);
                         strv_free(arg_syscall_blacklist);
 
-                        arg_syscall_whitelist = settings->syscall_whitelist;
-                        arg_syscall_blacklist = settings->syscall_blacklist;
-
-                        settings->syscall_whitelist = settings->syscall_blacklist = NULL;
+                        arg_syscall_whitelist = TAKE_PTR(settings->syscall_whitelist);
+                        arg_syscall_blacklist = TAKE_PTR(settings->syscall_blacklist);
                 }
         }
 
@@ -3917,9 +3894,7 @@ int main(int argc, char *argv[]) {
                                 goto finish;
                         }
 
-                        free(arg_directory);
-                        arg_directory = np;
-                        np = NULL;
+                        free_and_replace(arg_directory, np);
 
                         remove_directory = true;
 
@@ -4009,9 +3984,7 @@ int main(int argc, char *argv[]) {
                                 goto finish;
                         }
 
-                        free(arg_image);
-                        arg_image = np;
-                        np = NULL;
+                        free_and_replace(arg_image, np);
 
                         remove_image = true;
                 } else {
index ca69d70e3cfde656fb612961b6048d37b8202302..bffdf9f32d1a5568fda3c1b82c9fb3026b6a5695 100644 (file)
@@ -337,10 +337,8 @@ int config_parse_dnssd_txt(const char *unit, const char *filename, unsigned line
                 r = split_pair(word, "=", &key, &value);
                 if (r == -ENOMEM)
                         return log_oom();
-                if (r == -EINVAL) {
-                        key = word;
-                        word = NULL;
-                }
+                if (r == -EINVAL)
+                        key = TAKE_PTR(word);
 
                 if (!ascii_is_valid(key)) {
                         log_syntax(unit, LOG_ERR, filename, line, 0, "Invalid syntax, ignoring: %s", key);
index ecc6143e628bfeafa3df09bacb661166ec3b5fc8..394cb2c86ed8f577375e5b1f8b8647e494624862 100644 (file)
@@ -442,8 +442,7 @@ int dns_answer_merge(DnsAnswer *a, DnsAnswer *b, DnsAnswer **ret) {
         if (r < 0)
                 return r;
 
-        *ret = k;
-        k = NULL;
+        *ret = TAKE_PTR(k);
 
         return 0;
 }
@@ -518,8 +517,7 @@ int dns_answer_remove_by_key(DnsAnswer **a, const DnsResourceKey *key) {
                 }
 
                 dns_answer_unref(*a);
-                *a = copy;
-                copy = NULL;
+                *a = TAKE_PTR(copy);
 
                 return 1;
         }
@@ -604,8 +602,7 @@ int dns_answer_remove_by_rr(DnsAnswer **a, DnsResourceRecord *rm) {
                 }
 
                 dns_answer_unref(*a);
-                *a = copy;
-                copy = NULL;
+                *a = TAKE_PTR(copy);
 
                 return 1;
         }
@@ -778,8 +775,7 @@ int dns_answer_reserve_or_clone(DnsAnswer **a, unsigned n_free) {
                 return r;
 
         dns_answer_unref(*a);
-        *a = n;
-        n = NULL;
+        *a = TAKE_PTR(n);
 
         return 0;
 }
index 2067dd5182aae63b3ba2c27b1f7fe8ae2e607d00..5128763e9940286cfd37a8b5f78a5ed5a3bbe39e 100644 (file)
@@ -1472,8 +1472,7 @@ int dns_packet_read_name(
         if (after_rindex != 0)
                 p->rindex= after_rindex;
 
-        *_ret = ret;
-        ret = NULL;
+        *_ret = TAKE_PTR(ret);
 
         if (start)
                 *start = rewinder.saved_rindex;
@@ -2084,8 +2083,7 @@ int dns_packet_read_rr(DnsPacket *p, DnsResourceRecord **ret, bool *ret_cache_fl
         if (p->rindex != offset + rdlength)
                 return -EBADMSG;
 
-        *ret = rr;
-        rr = NULL;
+        *ret = TAKE_PTR(rr);
 
         if (ret_cache_flush)
                 *ret_cache_flush = cache_flush;
@@ -2171,8 +2169,8 @@ static int dns_packet_extract_question(DnsPacket *p, DnsQuestion **ret_question)
                 }
         }
 
-        *ret_question = question;
-        question = NULL;
+        *ret_question = TAKE_PTR(question);
+
         return 0;
 }
 
@@ -2287,8 +2285,8 @@ static int dns_packet_extract_answer(DnsPacket *p, DnsAnswer **ret_answer) {
         if (bad_opt)
                 p->opt = dns_resource_record_unref(p->opt);
 
-        *ret_answer = answer;
-        answer = NULL;
+        *ret_answer = TAKE_PTR(answer);
+
         return 0;
 }
 
@@ -2312,11 +2310,8 @@ int dns_packet_extract(DnsPacket *p) {
         if (r < 0)
                 return r;
 
-        p->question = question;
-        question = NULL;
-
-        p->answer = answer;
-        answer = NULL;
+        p->question = TAKE_PTR(question);
+        p->answer = TAKE_PTR(answer);
 
         p->extracted = true;
 
index 5f51340743e44782d341445ff2b887878666c1cd..91a31c0ff5917967c67c7ff41926f9780ccb2d39 100644 (file)
@@ -638,8 +638,7 @@ static int dns_query_synthesize_reply(DnsQuery *q, DnsTransactionState *state) {
 
         dns_query_reset_answer(q);
 
-        q->answer = answer;
-        answer = NULL;
+        q->answer = TAKE_PTR(answer);
         q->answer_rcode = DNS_RCODE_SUCCESS;
         q->answer_protocol = dns_synthesize_protocol(q->flags);
         q->answer_family = dns_synthesize_family(q->flags);
@@ -668,8 +667,7 @@ static int dns_query_try_etc_hosts(DnsQuery *q) {
 
         dns_query_reset_answer(q);
 
-        q->answer = answer;
-        answer = NULL;
+        q->answer = TAKE_PTR(answer);
         q->answer_rcode = DNS_RCODE_SUCCESS;
         q->answer_protocol = dns_synthesize_protocol(q->flags);
         q->answer_family = dns_synthesize_family(q->flags);
@@ -994,12 +992,10 @@ static int dns_query_cname_redirect(DnsQuery *q, const DnsResourceRecord *cname)
         q->flags |= SD_RESOLVED_NO_SEARCH;
 
         dns_question_unref(q->question_idna);
-        q->question_idna = nq_idna;
-        nq_idna = NULL;
+        q->question_idna = TAKE_PTR(nq_idna);
 
         dns_question_unref(q->question_utf8);
-        q->question_utf8 = nq_utf8;
-        nq_utf8 = NULL;
+        q->question_utf8 = TAKE_PTR(nq_utf8);
 
         dns_query_free_candidates(q);
         dns_query_reset_answer(q);
index 4dc3de40526472533d7e4b6a99ae8c42c6c5fd10..89e7ca0150277de1efd3e2bd413ab65dbcd3ab78 100644 (file)
@@ -278,8 +278,7 @@ int dns_question_cname_redirect(DnsQuestion *q, const DnsResourceRecord *cname,
                         return r;
         }
 
-        *ret = n;
-        n = NULL;
+        *ret = TAKE_PTR(n);
 
         return 1;
 }
@@ -348,8 +347,7 @@ int dns_question_new_address(DnsQuestion **ret, int family, const char *name, bo
                         return r;
         }
 
-        *ret = q;
-        q = NULL;
+        *ret = TAKE_PTR(q);
 
         return 0;
 }
@@ -384,8 +382,7 @@ int dns_question_new_reverse(DnsQuestion **ret, int family, const union in_addr_
         if (r < 0)
                 return r;
 
-        *ret = q;
-        q = NULL;
+        *ret = TAKE_PTR(q);
 
         return 0;
 }
@@ -468,8 +465,7 @@ int dns_question_new_service(
                         return r;
         }
 
-        *ret = q;
-        q = NULL;
+        *ret = TAKE_PTR(q);
 
         return 0;
 }
index 4056bda5585dc62f4f55a6f95137a6c1f46498a9..f6682846825d1707f3f44ac142fe43df347a9d5f 100644 (file)
@@ -560,8 +560,7 @@ int dns_resource_record_new_reverse(DnsResourceRecord **ret, int family, const u
         if (!rr->ptr.name)
                 return -ENOMEM;
 
-        *ret = rr;
-        rr = NULL;
+        *ret = TAKE_PTR(rr);
 
         return 0;
 }
@@ -1734,8 +1733,7 @@ DnsResourceRecord *dns_resource_record_copy(DnsResourceRecord *rr) {
                 break;
         }
 
-        t = copy;
-        copy = NULL;
+        t = TAKE_PTR(copy);
 
         return t;
 }
index 305bb6afe88750ce25be71009219e1db51a0d493..94f50dd1347d1f9ccd4e8e8b811478b6a6fa8fef 100644 (file)
@@ -681,8 +681,7 @@ int dns_scope_make_reply_packet(
                 return r;
         DNS_PACKET_HEADER(p)->arcount = htobe16(dns_answer_size(soa));
 
-        *ret = p;
-        p = NULL;
+        *ret = TAKE_PTR(p);
 
         return 0;
 }
@@ -866,8 +865,7 @@ static int dns_scope_make_conflict_packet(
         if (r < 0)
                 return r;
 
-        *ret = p;
-        p = NULL;
+        *ret = TAKE_PTR(p);
 
         return 0;
 }
index 52f23cd864443fa6a5647d3b96147130310370b4..50c7a4f4e29dca0b94fa717418004b66d3a114c2 100644 (file)
@@ -399,8 +399,7 @@ int dns_stream_new(Manager *m, DnsStream **ret, DnsProtocol protocol, int fd) {
         s->fd = fd;
         m->n_dns_streams++;
 
-        *ret = s;
-        s = NULL;
+        *ret = TAKE_PTR(s);
 
         return 0;
 }
index e71fcbdcca38cbf87b1b42f3c0893ea45b9afd4c..a66f488dd60bcc621ee5573207eabe861f67fa09 100644 (file)
@@ -440,10 +440,8 @@ int dns_synthesize_answer(
 
         if (found) {
 
-                if (ret) {
-                        *ret = answer;
-                        answer = NULL;
-                }
+                if (ret)
+                        *ret = TAKE_PTR(answer);
 
                 return 1;
         } else if (nxdomain)
index f4bbde02193e321ec9a3d29ea1bd3c0797d764d6..4eb45242192f8e71c51f7b4d44f1e2e367d2420d 100644 (file)
@@ -1530,8 +1530,7 @@ static int dns_transaction_make_packet_mdns(DnsTransaction *t) {
         }
         DNS_PACKET_HEADER(p)->nscount = htobe16(nscount);
 
-        t->sent = p;
-        p = NULL;
+        t->sent = TAKE_PTR(p);
 
         return 0;
 }
@@ -1559,8 +1558,7 @@ static int dns_transaction_make_packet(DnsTransaction *t) {
         DNS_PACKET_HEADER(p)->qdcount = htobe16(1);
         DNS_PACKET_HEADER(p)->id = t->id;
 
-        t->sent = p;
-        p = NULL;
+        t->sent = TAKE_PTR(p);
 
         return 0;
 }
@@ -3079,8 +3077,7 @@ int dns_transaction_validate_dnssec(DnsTransaction *t) {
         }
 
         dns_answer_unref(t->answer);
-        t->answer = validated;
-        validated = NULL;
+        t->answer = TAKE_PTR(validated);
 
         /* At this point the answer only contains validated
          * RRsets. Now, let's see if it actually answers the question
index c6e47ed0e902f9de01ea5f323083e77f32d7773c..fc7f26a46f3b390689f41b95b518ee7f6568dacd 100644 (file)
@@ -301,8 +301,7 @@ static int dns_trust_anchor_load_positive(DnsTrustAnchor *d, const char *path, u
                 rr->ds.algorithm = a;
                 rr->ds.digest_type = dt;
                 rr->ds.digest_size = l;
-                rr->ds.digest = dd;
-                dd = NULL;
+                rr->ds.digest = TAKE_PTR(dd);
 
         } else if (strcaseeq(type, "DNSKEY")) {
                 _cleanup_free_ char *flags = NULL, *protocol = NULL, *algorithm = NULL, *key = NULL;
@@ -354,8 +353,7 @@ static int dns_trust_anchor_load_positive(DnsTrustAnchor *d, const char *path, u
                 rr->dnskey.protocol = 3;
                 rr->dnskey.algorithm = a;
                 rr->dnskey.key_size = l;
-                rr->dnskey.key = k;
-                k = NULL;
+                rr->dnskey.key = TAKE_PTR(k);
 
         } else {
                 log_warning("RR type %s is not supported, ignoring line %s:%u.", type, path, line);
index 4888eccbd366404b05eb9ef07f9e032bb11eb777..b0f8bf0510763f8f8f4dfabab19393f1f262269b 100644 (file)
@@ -487,13 +487,10 @@ int dns_zone_lookup(DnsZone *z, DnsResourceKey *key, int ifindex, DnsAnswer **re
         if (!ret_tentative && tentative)
                 goto return_empty;
 
-        *ret_answer = answer;
-        answer = NULL;
+        *ret_answer = TAKE_PTR(answer);
 
-        if (ret_soa) {
-                *ret_soa = soa;
-                soa = NULL;
-        }
+        if (ret_soa)
+                *ret_soa = TAKE_PTR(soa);
 
         if (ret_tentative)
                 *ret_tentative = tentative;
index de1f0ce21d63e127daa9bc755e825af6cd80620e..3bb2ba3e35000b615979687658854e676793dffa 100644 (file)
@@ -646,8 +646,7 @@ int manager_new(Manager **ret) {
 
         manager_cleanup_saved_user(m);
 
-        *ret = m;
-        m = NULL;
+        *ret = TAKE_PTR(m);
 
         return 0;
 }
@@ -855,8 +854,7 @@ int manager_recv(Manager *m, int fd, DnsProtocol protocol, DnsPacket **ret) {
                         p->ifindex = manager_find_ifindex(m, p->family, &p->destination);
         }
 
-        *ret = p;
-        p = NULL;
+        *ret = TAKE_PTR(p);
 
         return 1;
 }
index 38e2c5422735720ecc8cbb7ecf496b5cc92a56dc..1fdb65352cfda05b8e02ad3e6a8434df9cf930df 100644 (file)
@@ -171,8 +171,7 @@ static int mdns_packet_extract_matching_rrs(DnsPacket *p, DnsResourceKey *key, D
         assert(n == size);
         qsort_safe(list, size, sizeof(DnsResourceRecord*), mdns_rr_compare);
 
-        *ret_rrs = list;
-        list = NULL;
+        *ret_rrs = TAKE_PTR(list);
 
         return size;
 }
index ff951450b56ad66c992919972029f5e66e7764d8..bae3aec175738fed6a43fcb9e63bee7b5eea8047 100644 (file)
@@ -319,10 +319,9 @@ static int save_state_queue(
         if (!item)
                 return -ENOMEM;
 
-        item->file = state_file;
+        item->file = TAKE_PTR(state_file);
         item->rfkill_idx = event->idx;
         item->state = event->soft;
-        state_file = NULL;
 
         LIST_APPEND(queue, *write_queue, item);
 
index 889a971d88bcbc9c66ebf0c9f5e0331839ea139c..25d48a5ffc70d0fe2ff094b583f325c8dd4a562c 100644 (file)
@@ -217,10 +217,8 @@ int acl_search_groups(const char *path, char ***ret_groups) {
                 r = acl_get_entry(acl, ACL_NEXT_ENTRY, &entry);
         }
 
-        if (ret_groups) {
-                *ret_groups = g;
-                g = NULL;
-        }
+        if (ret_groups)
+                *ret_groups = TAKE_PTR(g);
 
         return ret;
 }
@@ -287,9 +285,8 @@ int parse_acl(const char *text, acl_t *acl_access, acl_t *acl_default, bool want
                 }
         }
 
-        *acl_access = a_acl;
-        *acl_default = d_acl;
-        a_acl = d_acl = NULL;
+        *acl_access = TAKE_PTR(a_acl);
+        *acl_default = TAKE_PTR(d_acl);
 
         return 0;
 }
@@ -393,8 +390,8 @@ int acls_for_file(const char *path, acl_type_t type, acl_t new, acl_t *acl) {
         if (r < 0)
                 return -errno;
 
-        *acl = old;
-        old = NULL;
+        *acl = TAKE_PTR(old);
+
         return 0;
 }
 
index 8e1e16d73b63ed0e22cb16116b21ec1ee4682425..a9c17d29e2a0a25813539f179f661107a674b254 100644 (file)
@@ -1805,8 +1805,7 @@ int bus_wait_for_jobs_new(sd_bus *bus, BusWaitForJobs **ret) {
         if (r < 0)
                 return r;
 
-        *ret = d;
-        d = NULL;
+        *ret = TAKE_PTR(d);
 
         return 0;
 }
index df382f77a6b9e8750af408e6278640e07265c9ae..d9cb33443f6e2f1ba0583cb01a3357c9b1a385e5 100644 (file)
@@ -604,8 +604,7 @@ int bus_connect_system_systemd(sd_bus **_bus) {
         if (r < 0)
                 return r;
 
-        *_bus = bus;
-        bus = NULL;
+        *_bus = TAKE_PTR(bus);
 
         return 0;
 }
@@ -642,8 +641,7 @@ int bus_connect_user_systemd(sd_bus **_bus) {
         if (r < 0)
                 return r;
 
-        *_bus = bus;
-        bus = NULL;
+        *_bus = TAKE_PTR(bus);
 
         return 0;
 }
@@ -1338,8 +1336,7 @@ int bus_connect_transport(BusTransport transport, const char *host, bool user, s
         if (r < 0)
                 return r;
 
-        *ret = bus;
-        bus = NULL;
+        *ret = TAKE_PTR(bus);
 
         return 0;
 }
@@ -1718,8 +1715,7 @@ int bus_open_system_watch_bind(sd_bus **ret) {
         if (r < 0)
                 return r;
 
-        *ret = bus;
-        bus = NULL;
+        *ret = TAKE_PTR(bus);
 
         return 0;
 }
index 326a3980752eba9c8a3f543bcf8e70201d3f14f7..ae2bfadffc325d5c83c0d58ec47bdb886d9ad833 100644 (file)
@@ -385,10 +385,8 @@ int show_cgroup_get_path_and_warn(
                         return log_oom();
 
                 *ret = t;
-        } else {
-                *ret = root;
-                root = NULL;
-        }
+        } else
+                *ret = TAKE_PTR(root);
 
         return 0;
 }
index 483dc1a69fc0ad0540b599c159d6d3dd25331baa..ad70166d6843dd0f34e8a9a477b7028025d11ada 100644 (file)
@@ -1167,8 +1167,7 @@ int config_parse_join_controllers(
         }
 
         strv_free_free(*ret);
-        *ret = controllers;
-        controllers = NULL;
+        *ret = TAKE_PTR(controllers);
 
         return 0;
 }
index 95a98341ffa01bb9e35a06c6b3399a16bceb6edd..e2baa4497c0a5ca9f5db3f3fac1fbce33e705d57 100644 (file)
@@ -229,16 +229,13 @@ int dissect_image(
                                 .rw = true,
                                 .partno = -1,
                                 .architecture = _ARCHITECTURE_INVALID,
-                                .fstype = t,
-                                .node = n,
+                                .fstype = TAKE_PTR(t),
+                                .node = TAKE_PTR(n),
                         };
 
-                        t = n = NULL;
-
                         m->encrypted = streq(fstype, "crypto_LUKS");
 
-                        *ret = m;
-                        m = NULL;
+                        *ret = TAKE_PTR(m);
 
                         return 0;
                 }
@@ -541,12 +538,10 @@ int dissect_image(
                                         .partno = nr,
                                         .rw = rw,
                                         .architecture = architecture,
-                                        .node = n,
-                                        .fstype = t,
+                                        .node = TAKE_PTR(n),
+                                        .fstype = TAKE_PTR(t),
                                         .uuid = id,
                                 };
-
-                                n = t = NULL;
                         }
 
                 } else if (is_mbr) {
@@ -604,11 +599,9 @@ int dissect_image(
                                 .rw = generic_rw,
                                 .partno = generic_nr,
                                 .architecture = _ARCHITECTURE_INVALID,
-                                .node = generic_node,
+                                .node = TAKE_PTR(generic_node),
                                 .uuid = generic_uuid,
                         };
-
-                        generic_node = NULL;
                 }
         }
 
@@ -651,8 +644,7 @@ int dissect_image(
                         p->rw = false;
         }
 
-        *ret = m;
-        m = NULL;
+        *ret = TAKE_PTR(m);
 
         return 0;
 #else
@@ -883,10 +875,9 @@ static int make_dm_name_and_node(const void *original_node, const char *suffix,
         if (!node)
                 return -ENOMEM;
 
-        *ret_name = name;
-        *ret_node = node;
+        *ret_name = TAKE_PTR(name);
+        *ret_node = TAKE_PTR(node);
 
-        name = node = NULL;
         return 0;
 }
 
@@ -935,15 +926,11 @@ static int decrypt_partition(
                 return r == -EPERM ? -EKEYREJECTED : r;
         }
 
-        d->decrypted[d->n_decrypted].name = name;
-        name = NULL;
-
-        d->decrypted[d->n_decrypted].device = cd;
-        cd = NULL;
+        d->decrypted[d->n_decrypted].name = TAKE_PTR(name);
+        d->decrypted[d->n_decrypted].device = TAKE_PTR(cd);
         d->n_decrypted++;
 
-        m->decrypted_node = node;
-        node = NULL;
+        m->decrypted_node = TAKE_PTR(node);
 
         return 0;
 }
@@ -997,15 +984,11 @@ static int verity_partition(
         if (r < 0)
                 return r;
 
-        d->decrypted[d->n_decrypted].name = name;
-        name = NULL;
-
-        d->decrypted[d->n_decrypted].device = cd;
-        cd = NULL;
+        d->decrypted[d->n_decrypted].name = TAKE_PTR(name);
+        d->decrypted[d->n_decrypted].device = TAKE_PTR(cd);
         d->n_decrypted++;
 
-        m->decrypted_node = node;
-        node = NULL;
+        m->decrypted_node = TAKE_PTR(node);
 
         return 0;
 }
@@ -1074,8 +1057,7 @@ int dissected_image_decrypt(
                 }
         }
 
-        *ret = d;
-        d = NULL;
+        *ret = TAKE_PTR(d);
 
         return 1;
 #else
@@ -1233,11 +1215,9 @@ int root_hash_load(const char *image, void **ret, size_t *ret_size) {
         if (l < sizeof(sd_id128_t))
                 return -EINVAL;
 
-        *ret = k;
+        *ret = TAKE_PTR(k);
         *ret_size = l;
 
-        k = NULL;
-
         return 1;
 }
 
index 89d18431e42e28d0af1e80c9d4c5f9ba4e0892fe..af933cdca56e7aa2426086868cc9db80379dfc27 100644 (file)
@@ -408,10 +408,9 @@ int dns_name_concat(const char *a, const char *b, char **_ret) {
 
         if (a)
                 p = a;
-        else if (b) {
-                p = b;
-                b = NULL;
-        } else
+        else if (b)
+                p = TAKE_PTR(b);
+        else
                 goto finish;
 
         for (;;) {
@@ -426,8 +425,7 @@ int dns_name_concat(const char *a, const char *b, char **_ret) {
 
                         if (b) {
                                 /* Now continue with the second string, if there is one */
-                                p = b;
-                                b = NULL;
+                                p = TAKE_PTR(b);
                                 continue;
                         }
 
@@ -477,8 +475,7 @@ finish:
                 }
 
                 ret[n] = 0;
-                *_ret = ret;
-                ret = NULL;
+                *_ret = TAKE_PTR(ret);
         }
 
         return 0;
@@ -675,8 +672,8 @@ int dns_name_change_suffix(const char *name, const char *old_suffix, const char
 
                         /* Not the same, let's jump back, and try with the next label again */
                         s = old_suffix;
-                        n = saved_after;
-                        saved_after = saved_before = NULL;
+                        n = TAKE_PTR(saved_after);
+                        saved_before = NULL;
                 }
         }
 
@@ -1111,20 +1108,14 @@ finish:
         if (r < 0)
                 return r;
 
-        if (_domain) {
-                *_domain = domain;
-                domain = NULL;
-        }
+        if (_domain)
+                *_domain = TAKE_PTR(domain);
 
-        if (_type) {
-                *_type = type;
-                type = NULL;
-        }
+        if (_type)
+                *_type = TAKE_PTR(type);
 
-        if (_name) {
-                *_name = name;
-                name = NULL;
-        }
+        if (_name)
+                *_name = TAKE_PTR(name);
 
         return 0;
 }
@@ -1307,8 +1298,8 @@ int dns_name_apply_idna(const char *name, char **ret) {
                         }
                 }
 
-                *ret = t;
-                t = NULL;
+                *ret = TAKE_PTR(t);
+
                 return 1; /* *ret has been written */
         }
 
@@ -1365,8 +1356,7 @@ int dns_name_apply_idna(const char *name, char **ret) {
                 return -ENOMEM;
 
         buf[n] = 0;
-        *ret = buf;
-        buf = NULL;
+        *ret = TAKE_PTR(buf);
 
         return 1;
 #else
index d31cf2d86016333deb58ce03ddf75488e3a337c5..af9587a1c2e8ff55b196f9a223539fd9bca086dd 100644 (file)
@@ -427,16 +427,12 @@ int efi_get_boot_option(
                 }
         }
 
-        if (title) {
-                *title = s;
-                s = NULL;
-        }
+        if (title)
+                *title = TAKE_PTR(s);
         if (part_uuid)
                 *part_uuid = p_uuid;
-        if (path) {
-                *path = p;
-                p = NULL;
-        }
+        if (path)
+                *path = TAKE_PTR(p);
         if (active)
                 *active = !!(header->attr & LOAD_OPTION_ACTIVE);
 
@@ -628,8 +624,8 @@ int efi_get_boot_options(uint16_t **options) {
 
         qsort_safe(list, count, sizeof(uint16_t), cmp_uint16);
 
-        *options = list;
-        list = NULL;
+        *options = TAKE_PTR(list);
+
         return count;
 }
 
index 477e15a4daa9cfd06e1533c720acc8aff7ccabaa..d7f7edad95f8b607d2375c72ce4f75553a957131 100644 (file)
@@ -2312,8 +2312,7 @@ int unit_file_revert(
                                         if (!GREEDY_REALLOC0(todo, n_allocated, n_todo + 2))
                                                 return -ENOMEM;
 
-                                        todo[n_todo++] = dropin;
-                                        dropin = NULL;
+                                        todo[n_todo++] = TAKE_PTR(dropin);
                                 }
                         }
                 }
@@ -2342,8 +2341,7 @@ int unit_file_revert(
                                         if (!GREEDY_REALLOC0(todo, n_allocated, n_todo + 2))
                                                 return -ENOMEM;
 
-                                        todo[n_todo++] = path;
-                                        path = NULL;
+                                        todo[n_todo++] = TAKE_PTR(path);
                                 }
                         }
                 }
index 0f3defd581af0887769bca65701124faac5dfffb..d2c3bb501c8a38d57957baeaa9c9e267787912f1 100644 (file)
@@ -100,14 +100,11 @@ int loop_device_make(int fd, int open_flags, LoopDevice **ret) {
                 return -ENOMEM;
 
         *d = (LoopDevice) {
-                .fd = loop,
-                .node = loopdev,
+                .fd = TAKE_FD(loop),
+                .node = TAKE_PTR(loopdev),
                 .nr = nr,
         };
 
-        loop = -1;
-        loopdev = NULL;
-
         *ret = d;
 
         return (*ret)->fd;
index 89fd8c5dba41724f2523b98b28696e353c71b2da..607f69930d331443d936e55750188b3dcc407014 100644 (file)
@@ -159,8 +159,7 @@ static int image_new(
 
         path_kill_slashes(i->path);
 
-        *ret = i;
-        i = NULL;
+        *ret = TAKE_PTR(i);
 
         return 0;
 }
index a472e80aec53189d8c22a7dcf30c90d04ace77ca..792175a8d815e2b1fe8b45f606a6a917da184daa 100644 (file)
@@ -302,11 +302,10 @@ static int acquire_generator_dirs(
         if (!z)
                 return -ENOMEM;
 
-        *generator = x;
-        *generator_early = y;
-        *generator_late = z;
+        *generator = TAKE_PTR(x);
+        *generator_early = TAKE_PTR(y);
+        *generator_late = TAKE_PTR(z);
 
-        x = y = z = NULL;
         return 0;
 }
 
@@ -381,9 +380,8 @@ static int acquire_config_dirs(UnitFileScope scope, char **persistent, char **ru
         if (!a || !b)
                 return -ENOMEM;
 
-        *persistent = a;
-        *runtime = b;
-        a = b = NULL;
+        *persistent = TAKE_PTR(a);
+        *runtime = TAKE_PTR(b);
 
         return 0;
 }
@@ -647,12 +645,10 @@ int lookup_paths_init(
                         r = strv_extend_strv(&paths, add, true);
                         if (r < 0)
                                 return r;
-                } else {
+                } else
                         /* Small optimization: if paths is NULL (and it usually is), we can simply assign 'add' to it,
                          * and don't have to copy anything */
-                        paths = add;
-                        add = NULL;
-                }
+                        paths = TAKE_PTR(add);
         }
 
         r = patch_root_prefix(&persistent_config, root);
@@ -691,27 +687,20 @@ int lookup_paths_init(
         p->search_path = strv_uniq(paths);
         paths = NULL;
 
-        p->persistent_config = persistent_config;
-        p->runtime_config = runtime_config;
-        persistent_config = runtime_config = NULL;
-
-        p->generator = generator;
-        p->generator_early = generator_early;
-        p->generator_late = generator_late;
-        generator = generator_early = generator_late = NULL;
+        p->persistent_config = TAKE_PTR(persistent_config);
+        p->runtime_config = TAKE_PTR(runtime_config);
 
-        p->transient = transient;
-        transient = NULL;
+        p->generator = TAKE_PTR(generator);
+        p->generator_early = TAKE_PTR(generator_early);
+        p->generator_late = TAKE_PTR(generator_late);
 
-        p->persistent_control = persistent_control;
-        p->runtime_control = runtime_control;
-        persistent_control = runtime_control = NULL;
+        p->transient = TAKE_PTR(transient);
 
-        p->root_dir = root;
-        root = NULL;
+        p->persistent_control = TAKE_PTR(persistent_control);
+        p->runtime_control = TAKE_PTR(runtime_control);
 
-        p->temporary_dir = tempdir;
-        tempdir = NULL;
+        p->root_dir = TAKE_PTR(root);
+        p->temporary_dir = TAKE_PTR(tempdir);
 
         return 0;
 }
index 94a4dd513f952d7babd33e50bae1d8ffebed5e0f..d587395c5eda4018d20688f35c01ecd3b97bcfe9 100644 (file)
@@ -495,8 +495,7 @@ int pty_forward_new(
 
         (void) sd_event_source_set_description(f->sigwinch_event_source, "ptyfwd-sigwinch");
 
-        *ret = f;
-        f = NULL;
+        *ret = TAKE_PTR(f);
 
         return 0;
 }
index 13c83097a55cfe300e9aa6ff7a299900ca2a1dad..65b14a3c0dd0f873a4d9260d9e9d53163ebc4216 100644 (file)
@@ -1613,8 +1613,7 @@ int parse_syscall_archs(char **l, Set **archs) {
                         return -ENOMEM;
         }
 
-        *archs = _archs;
-        _archs = NULL;
+        *archs = TAKE_PTR(_archs);
 
         return 0;
 }
index 12fca4ef9ab96f8bf3faed969ce3bd95ce125d25..b4cbe126f67b970c8cadf0afbd61ebbad334eb2e 100644 (file)
@@ -680,8 +680,7 @@ static int get_unit_list(
         if (r < 0)
                 return bus_log_parse_error(r);
 
-        *_reply = reply;
-        reply = NULL;
+        *_reply = TAKE_PTR(reply);
 
         return c;
 }
@@ -752,16 +751,13 @@ static int get_unit_list_recursive(
                         }
                 }
 
-                *_machines = machines;
-                machines = NULL;
+                *_machines = TAKE_PTR(machines);
         } else
                 *_machines = NULL;
 
-        *_unit_infos = unit_infos;
-        unit_infos = NULL;
+        *_unit_infos = TAKE_PTR(unit_infos);
 
-        *_replies = replies;
-        replies = NULL;
+        *_replies = TAKE_PTR(replies);
 
         return c;
 }
@@ -1334,10 +1330,8 @@ static int list_timers(int argc, char *argv[], void *userdata) {
                         .id = u->id,
                         .next_elapse = m,
                         .last_trigger = last,
-                        .triggered = triggered,
+                        .triggered = TAKE_PTR(triggered),
                 };
-
-                triggered = NULL; /* avoid cleanup */
         }
 
         qsort_safe(timer_infos, c, sizeof(struct timer_info),
@@ -1705,8 +1699,7 @@ static int list_dependencies_get_dependencies(sd_bus *bus, const char *name, cha
                 info.dep[i] = strv_free(info.dep[i]);
         }
 
-        *deps = ret;
-        ret = NULL;
+        *deps = TAKE_PTR(ret);
 
         return 0;
 }
@@ -2606,14 +2599,12 @@ static int unit_find_paths(
         r = 0;
 
         if (!isempty(path)) {
-                *fragment_path = path;
-                path = NULL;
+                *fragment_path = TAKE_PTR(path);
                 r = 1;
         }
 
         if (dropin_paths && !strv_isempty(dropins)) {
-                *dropin_paths = dropins;
-                dropins = NULL;
+                *dropin_paths = TAKE_PTR(dropins);
                 r = 1;
         }
  not_found:
@@ -3008,8 +2999,7 @@ static int expand_names(sd_bus *bus, char **names, const char* suffix, char ***r
                 }
         }
 
-        *ret = mangled;
-        mangled = NULL; /* do not free */
+        *ret = TAKE_PTR(mangled);
 
         return 0;
 }
index f6878a9c0107662cabe16e8a4b476b3bbd876b46..1b452ca7073e50ec178decc42908b775d49c4172 100644 (file)
@@ -464,10 +464,9 @@ static int write_temporary_passwd(const char *passwd_path, FILE **tmpfile, char
         if (r < 0)
                 return r;
 
-        *tmpfile = passwd;
-        *tmpfile_path = passwd_tmp;
-        passwd = NULL;
-        passwd_tmp = NULL;
+        *tmpfile = TAKE_PTR(passwd);
+        *tmpfile_path = TAKE_PTR(passwd_tmp);
+
         return 0;
 }
 
@@ -564,10 +563,9 @@ static int write_temporary_shadow(const char *shadow_path, FILE **tmpfile, char
         if (r < 0)
                 return r;
 
-        *tmpfile = shadow;
-        *tmpfile_path = shadow_tmp;
-        shadow = NULL;
-        shadow_tmp = NULL;
+        *tmpfile = TAKE_PTR(shadow);
+        *tmpfile_path = TAKE_PTR(shadow_tmp);
+
         return 0;
 }
 
@@ -663,10 +661,8 @@ static int write_temporary_group(const char *group_path, FILE **tmpfile, char **
                 return r;
 
         if (group_changed) {
-                *tmpfile = group;
-                *tmpfile_path = group_tmp;
-                group = NULL;
-                group_tmp = NULL;
+                *tmpfile = TAKE_PTR(group);
+                *tmpfile_path = TAKE_PTR(group_tmp);
         }
         return 0;
 }
@@ -737,10 +733,8 @@ static int write_temporary_gshadow(const char * gshadow_path, FILE **tmpfile, ch
                 return r;
 
         if (group_changed) {
-                *tmpfile = gshadow;
-                *tmpfile_path = gshadow_tmp;
-                gshadow = NULL;
-                gshadow_tmp = NULL;
+                *tmpfile = TAKE_PTR(gshadow);
+                *tmpfile_path = TAKE_PTR(gshadow_tmp);
         }
         return 0;
 #else
@@ -1604,8 +1598,7 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
 
                 if (resolved_id) {
                         if (path_is_absolute(resolved_id)) {
-                                i->uid_path = resolved_id;
-                                resolved_id = NULL;
+                                i->uid_path = TAKE_PTR(resolved_id);
 
                                 path_kill_slashes(i->uid_path);
                         } else {
@@ -1627,14 +1620,9 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
                         }
                 }
 
-                i->description = description;
-                description = NULL;
-
-                i->home = home;
-                home = NULL;
-
-                i->shell = resolved_shell;
-                resolved_shell = NULL;
+                i->description = TAKE_PTR(description);
+                i->home = TAKE_PTR(home);
+                i->shell = TAKE_PTR(resolved_shell);
 
                 h = users;
                 break;
@@ -1662,8 +1650,7 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
 
                 if (resolved_id) {
                         if (path_is_absolute(resolved_id)) {
-                                i->gid_path = resolved_id;
-                                resolved_id = NULL;
+                                i->gid_path = TAKE_PTR(resolved_id);
 
                                 path_kill_slashes(i->gid_path);
                         } else {
@@ -1683,8 +1670,7 @@ static int parse_line(const char *fname, unsigned line, const char *buffer) {
         }
 
         i->type = action[0];
-        i->name = resolved_name;
-        resolved_name = NULL;
+        i->name = TAKE_PTR(resolved_name);
 
         existing = ordered_hashmap_get(h, i->name);
         if (existing) {
index 394a04bb885ff5103e3d86a587033f264db80d1c..5b30baee8422213665c8c2bfc81fd20152816d77 100644 (file)
@@ -809,9 +809,8 @@ static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) {
                                 return log_oom();
 
                         service->sysv_start_priority = -1;
-                        service->name = name;
-                        service->path = fpath;
-                        name = fpath = NULL;
+                        service->name = TAKE_PTR(name);
+                        service->path = TAKE_PTR(fpath);
 
                         r = hashmap_put(all_services, service->name, service);
                         if (r < 0)
index 822835cce99e38b0cc935cbd343ec3ef5d5c371f..34ea03892c1580c76ee41cebdecc0fbb1bf05edb 100644 (file)
@@ -683,8 +683,7 @@ static int connect_bus(Context *c, sd_event *event, sd_bus **_bus) {
         if (r < 0)
                 return log_error_errno(r, "Failed to attach bus to event loop: %m");
 
-        *_bus = bus;
-        bus = NULL;
+        *_bus = TAKE_PTR(bus);
 
         return 0;
 }
index 7743036023c32eae6040036dbaca2469a8a46066..d5eaf64e74e0654b81ca95b0899cf7bfe4f9c445 100644 (file)
@@ -488,7 +488,7 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
                 .msg_namelen = sizeof(server_addr),
         };
         struct cmsghdr *cmsg;
-        struct timespec *recv_time;
+        struct timespec *recv_time = NULL;
         ssize_t len;
         double origin, receive, trans, dest;
         double delay, offset;
@@ -527,7 +527,6 @@ static int manager_receive_response(sd_event_source *source, int fd, uint32_t re
                 return 0;
         }
 
-        recv_time = NULL;
         CMSG_FOREACH(cmsg, &msghdr) {
                 if (cmsg->cmsg_level != SOL_SOCKET)
                         continue;
@@ -1154,8 +1153,7 @@ int manager_new(Manager **ret) {
 
         manager_network_read_link_servers(m);
 
-        *ret = m;
-        m = NULL;
+        *ret = TAKE_PTR(m);
 
         return 0;
 }
index a4368f088d172cff69631e510cd4d5ff218f0397..bd578984dfbdd182c07aa0154c76fc70891d37e2 100644 (file)
@@ -135,8 +135,7 @@ int link_config_ctx_new(link_config_ctx **ret) {
 
         ctx->enable_name_policy = true;
 
-        *ret = ctx;
-        ctx = NULL;
+        *ret = TAKE_PTR(ctx);
 
         return 0;
 }
index 34976b30e08d6f68696a04fdb7e8a7a23684fdaa..254a72556ef6167f63613eff2eb9370501e207b5 100644 (file)
@@ -352,8 +352,7 @@ static void worker_spawn(Manager *manager, struct event *event) {
                 sigset_t mask;
 
                 /* take initial device from queue */
-                dev = event->dev;
-                event->dev = NULL;
+                dev = TAKE_PTR(event->dev);
 
                 unsetenv("NOTIFY_SOCKET");
 
@@ -1605,8 +1604,7 @@ static int manager_new(Manager **ret, int fd_ctrl, int fd_uevent, const char *cg
         if (r < 0)
                 return log_error_errno(r, "error creating post event source: %m");
 
-        *ret = manager;
-        manager = NULL;
+        *ret = TAKE_PTR(manager);
 
         return 0;
 }