]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tree-wide: use mfree more
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 16 Oct 2016 22:28:30 +0000 (18:28 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 17 Oct 2016 03:35:39 +0000 (23:35 -0400)
64 files changed:
coccinelle/mfree_return.cocci [new file with mode: 0644]
src/basic/bitmap.c
src/basic/env-util.c
src/basic/prioq.c
src/basic/replace-var.c
src/basic/strbuf.c
src/basic/string-util.c
src/basic/strv.c
src/core/dynamic-user.c
src/core/execute.c
src/core/manager.c
src/core/transaction.c
src/core/unit.c
src/cryptsetup/cryptsetup-generator.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-job.c
src/import/pull-raw.c
src/import/pull-tar.c
src/journal-remote/journal-remote-write.c
src/journal/journal-file.c
src/journal/mmap-cache.c
src/journal/sd-journal.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-dhcp6-lease.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/sd-bus/bus-slot.c
src/libsystemd/sd-bus/bus-track.c
src/libudev/libudev-list.c
src/libudev/libudev-monitor.c
src/login/logind-button.c
src/login/logind-device.c
src/login/logind-inhibit.c
src/login/logind-seat.c
src/login/logind-session.c
src/machine/machine.c
src/machine/operation.c
src/network/networkd-wait-online-link.c
src/nspawn/nspawn-settings.c
src/resolve/resolved-dns-query.c
src/resolve/resolved-dns-rr.c
src/resolve/resolved-dns-scope.c
src/resolve/resolved-dns-search-domain.c
src/resolve/resolved-dns-server.c
src/resolve/resolved-dns-stream.c
src/resolve/resolved-dns-transaction.c
src/resolve/resolved-link.c
src/resolve/resolved-manager.c
src/shared/machine-image.c
src/shared/ptyfwd.c
src/timesync/timesyncd-server.c
src/udev/udev-ctrl.c
src/udev/udev-rules.c

diff --git a/coccinelle/mfree_return.cocci b/coccinelle/mfree_return.cocci
new file mode 100644 (file)
index 0000000..8119fe0
--- /dev/null
@@ -0,0 +1,6 @@
+@@
+expression p;
+@@
+- free(p);
+- return NULL;
++ return mfree(p);
index f4b12fc261460a3e6f27d739ebb3f929806e890f..f6212e615145e38978c95255e3dabb60fc929de5 100644 (file)
@@ -58,10 +58,8 @@ Bitmap *bitmap_copy(Bitmap *b) {
                 return NULL;
 
         ret->bitmaps = newdup(uint64_t, b->bitmaps, b->n_bitmaps);
-        if (!ret->bitmaps) {
-                free(ret);
-                return NULL;
-        }
+        if (!ret->bitmaps)
+                return mfree(ret);
 
         ret->n_bitmaps = ret->bitmaps_allocated = b->n_bitmaps;
         return ret;
index 7f5fddb70062395104413eafe029f8bc5e49495d..b74290d6fd49ad721660c924c239d29f96cda990 100644 (file)
@@ -544,8 +544,7 @@ char *replace_env(const char *format, char **env) {
         return k;
 
 fail:
-        free(r);
-        return NULL;
+        return mfree(r);
 }
 
 char **replace_env_argv(char **argv, char **env) {
index d2ec516d297ccaca972cb8d9d85bb36e600c8716..4570b8e4baab44afa49ef667257833be54568fde 100644 (file)
@@ -62,9 +62,7 @@ Prioq* prioq_free(Prioq *q) {
                 return NULL;
 
         free(q->items);
-        free(q);
-
-        return NULL;
+        return mfree(q);
 }
 
 int prioq_ensure_allocated(Prioq **q, compare_func_t compare_func) {
index 6a204b9ec349d857300058e2014e56354ec815dc..0d21423a9c67aced489c89ff60e6abaa77f0416a 100644 (file)
@@ -107,6 +107,5 @@ char *replace_var(const char *text, char *(*lookup)(const char *variable, void*u
         return r;
 
 oom:
-        free(r);
-        return NULL;
+        return mfree(r);
 }
index 4bef87d3c26709678cbdc3b7c80b1a51a67f1de2..00aaf9e6214dec1b9befa3e718019a5c4fa0963c 100644 (file)
@@ -62,8 +62,7 @@ struct strbuf *strbuf_new(void) {
 err:
         free(str->buf);
         free(str->root);
-        free(str);
-        return NULL;
+        return mfree(str);
 }
 
 static void strbuf_node_cleanup(struct strbuf_node *node) {
index dc7de5dab82538e4cfd969956d3eecb926845bb7..6b06e643c99398f6226d788589eeb04c70854abd 100644 (file)
@@ -610,8 +610,7 @@ char *strreplace(const char *text, const char *old_string, const char *new_strin
         return r;
 
 oom:
-        free(r);
-        return NULL;
+        return mfree(r);
 }
 
 char *strip_tab_ansi(char **ibuf, size_t *_isz) {
@@ -682,8 +681,7 @@ char *strip_tab_ansi(char **ibuf, size_t *_isz) {
 
         if (ferror(f)) {
                 fclose(f);
-                free(obuf);
-                return NULL;
+                return mfree(obuf);
         }
 
         fclose(f);
index 34e464d253772923300ff9bc9ccc64cbf1e726b5..0eec868eed1f5e0dc46288eadf16b89830d49b7c 100644 (file)
@@ -87,8 +87,7 @@ void strv_clear(char **l) {
 
 char **strv_free(char **l) {
         strv_clear(l);
-        free(l);
-        return NULL;
+        return mfree(l);
 }
 
 char **strv_free_erase(char **l) {
@@ -426,8 +425,7 @@ char *strv_join_quoted(char **l) {
         return buf;
 
  oom:
-        free(buf);
-        return NULL;
+        return mfree(buf);
 }
 
 int strv_push(char ***l, char *value) {
@@ -869,8 +867,7 @@ char ***strv_free_free(char ***l) {
         for (i = l; *i; i++)
                 strv_free(*i);
 
-        free(l);
-        return NULL;
+        return mfree(l);
 }
 
 char **strv_skip(char **l, size_t n) {
index 1043da3eb77008ca9d591f900b8169ef03ffb643..e1846e1adbee485b885f15c327bdd655070874f9 100644 (file)
@@ -42,9 +42,7 @@ static DynamicUser* dynamic_user_free(DynamicUser *d) {
                 (void) hashmap_remove(d->manager->dynamic_users, d->name);
 
         safe_close_pair(d->storage_socket);
-        free(d);
-
-        return NULL;
+        return mfree(d);
 }
 
 static int dynamic_user_add(Manager *m, const char *name, int storage_socket[2], DynamicUser **ret) {
index 869522704a8e726e35acc9b9678569ea60cb2a06..59c2bd0dd2aeb00818d02aaa6cee21a7abc5a252 100644 (file)
@@ -3740,9 +3740,7 @@ ExecRuntime *exec_runtime_unref(ExecRuntime *r) {
         free(r->tmp_dir);
         free(r->var_tmp_dir);
         safe_close_pair(r->netns_storage_socket);
-        free(r);
-
-        return NULL;
+        return mfree(r);
 }
 
 int exec_runtime_serialize(Unit *u, ExecRuntime *rt, FILE *f, FDSet *fds) {
index 35692497885af1a1c6e7c31d2de9ad5dfcabd80c..50aae0d1ba348686bc6cdca84d1bb836d79c635e 100644 (file)
@@ -1119,8 +1119,7 @@ Manager* manager_free(Manager *m) {
         hashmap_free(m->uid_refs);
         hashmap_free(m->gid_refs);
 
-        free(m);
-        return NULL;
+        return mfree(m);
 }
 
 void manager_enumerate(Manager *m) {
index 8370b864fb63f0182e6dd3621cc1194211451bad..e22e3b30c2e0cafa7dbf22e4bb30ee802c20cf38 100644 (file)
@@ -1085,10 +1085,8 @@ Transaction *transaction_new(bool irreversible) {
                 return NULL;
 
         tr->jobs = hashmap_new(NULL);
-        if (!tr->jobs) {
-                free(tr);
-                return NULL;
-        }
+        if (!tr->jobs)
+                return mfree(tr);
 
         tr->irreversible = irreversible;
 
index 67668bdc480e3edca7cd4f8da7a8a13b2a3de4d9..a6b8ecdcb769cdee3c9f9649296e22e6d66a3b41 100644 (file)
@@ -88,10 +88,8 @@ Unit *unit_new(Manager *m, size_t size) {
                 return NULL;
 
         u->names = set_new(&string_hash_ops);
-        if (!u->names) {
-                free(u);
-                return NULL;
-        }
+        if (!u->names)
+                return mfree(u);
 
         u->manager = m;
         u->type = _UNIT_TYPE_INVALID;
index 8ac5ab730afe081d7fc1218ed89a5ff92694352b..de0a3b6f9c19f1ca1cf372ef0b1e2af8af0fccf8 100644 (file)
@@ -264,16 +264,13 @@ static crypto_device *get_crypto_device(const char *uuid) {
                 d->keyfile = d->options = d->name = NULL;
 
                 d->uuid = strdup(uuid);
-                if (!d->uuid) {
-                        free(d);
-                        return NULL;
-                }
+                if (!d->uuid)
+                        return mfree(d);
 
                 r = hashmap_put(arg_disks, d->uuid, d);
                 if (r < 0) {
                         free(d->uuid);
-                        free(d);
-                        return NULL;
+                        return mfree(d);
                 }
         }
 
index 6990c47f482762768f24161c6ec667503330f346..734e1560e67f61c9a25c40b66a817cc7d50d25ec 100644 (file)
@@ -235,9 +235,7 @@ CurlGlue *curl_glue_unref(CurlGlue *g) {
 
         sd_event_source_unref(g->timer);
         sd_event_unref(g->event);
-        free(g);
-
-        return NULL;
+        return mfree(g);
 }
 
 int curl_glue_new(CurlGlue **glue, sd_event *event) {
index 6136b677ddeb730311c289b5b67c493b42c1e5a9..a3dbce195419ed8cd3dc74adc161bdb52ddad19d 100644 (file)
@@ -87,9 +87,7 @@ RawExport *raw_export_unref(RawExport *e) {
 
         free(e->buffer);
         free(e->path);
-        free(e);
-
-        return NULL;
+        return mfree(e);
 }
 
 int raw_export_new(
index d79c27f2d061d8ee8574b326ead06f62439c668b..3bb60274316003c1b651c52b26a00314e036b9a0 100644 (file)
@@ -91,9 +91,7 @@ TarExport *tar_export_unref(TarExport *e) {
 
         free(e->buffer);
         free(e->path);
-        free(e);
-
-        return NULL;
+        return mfree(e);
 }
 
 int tar_export_new(
index fd6b9f77030e29f7bc3b666e4044800c47d5744d..29f3f896e51fb829e90f5f4159712687e038134f 100644 (file)
@@ -100,9 +100,7 @@ RawImport* raw_import_unref(RawImport *i) {
         free(i->final_path);
         free(i->image_root);
         free(i->local);
-        free(i);
-
-        return NULL;
+        return mfree(i);
 }
 
 int raw_import_new(
index 8b81324fdef3e7b1e9a8b3d93b9ce63e7c8be1a6..22f9b8c5ea76ea193c101b38ebd3c5f521ed23dd 100644 (file)
@@ -107,9 +107,7 @@ TarImport* tar_import_unref(TarImport *i) {
         free(i->final_path);
         free(i->image_root);
         free(i->local);
-        free(i);
-
-        return NULL;
+        return mfree(i);
 }
 
 int tar_import_new(
index 28b4302cb3fafa524016e19c1fc56ac60aa2baa7..9d31a956a548e0362b644b822ae65e488c5827a3 100644 (file)
@@ -141,8 +141,7 @@ static Transfer *transfer_unref(Transfer *t) {
         safe_close(t->stdin_fd);
         safe_close(t->stdout_fd);
 
-        free(t);
-        return NULL;
+        return mfree(t);
 }
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(Transfer*, transfer_unref);
@@ -548,8 +547,7 @@ static Manager *manager_unref(Manager *m) {
         m->bus = sd_bus_flush_close_unref(m->bus);
         sd_event_unref(m->event);
 
-        free(m);
-        return NULL;
+        return mfree(m);
 }
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_unref);
index 6bcf35ef4e2562d90abb329cc813d2638faffc86..e550df2c57c5c9930c86eb1f04c90d5733cb89b0 100644 (file)
@@ -50,9 +50,7 @@ PullJob* pull_job_unref(PullJob *j) {
         free(j->payload);
         free(j->checksum);
 
-        free(j);
-
-        return NULL;
+        return mfree(j);
 }
 
 static void pull_job_finish(PullJob *j, int ret) {
index 899340282132ca357571ce99a0fb7e1545b58f71..0cf410a5d9231eb63afa995068d2fee2a0da377c 100644 (file)
@@ -110,9 +110,7 @@ RawPull* raw_pull_unref(RawPull *i) {
         free(i->settings_path);
         free(i->image_root);
         free(i->local);
-        free(i);
-
-        return NULL;
+        return mfree(i);
 }
 
 int raw_pull_new(
index 8c61c46f7346d3e1f7afba54435c03c9eb59c95b..68e2397b02b903673218c6be4c591d1946abd39f 100644 (file)
@@ -114,9 +114,7 @@ TarPull* tar_pull_unref(TarPull *i) {
         free(i->settings_path);
         free(i->image_root);
         free(i->local);
-        free(i);
-
-        return NULL;
+        return mfree(i);
 }
 
 int tar_pull_new(
index 7bba52566ea58b94c0e9ec4404af7978a992c083..8729372aa391ec3577adc73c7d581663fbad2d4c 100644 (file)
@@ -75,10 +75,8 @@ Writer* writer_new(RemoteServer *server) {
         memset(&w->metrics, 0xFF, sizeof(w->metrics));
 
         w->mmap = mmap_cache_new();
-        if (!w->mmap) {
-                free(w);
-                return NULL;
-        }
+        if (!w->mmap)
+                return mfree(w);
 
         w->n_ref = 1;
         w->server = server;
@@ -103,9 +101,7 @@ Writer* writer_free(Writer *w) {
         if (w->mmap)
                 mmap_cache_unref(w->mmap);
 
-        free(w);
-
-        return NULL;
+        return mfree(w);
 }
 
 Writer* writer_unref(Writer *w) {
index 49199b269f26708aadbe4824b62fa35e326c100e..d3e021473185b09750d547efbd7a3c55b5a825e5 100644 (file)
@@ -394,8 +394,7 @@ JournalFile* journal_file_close(JournalFile *f) {
                 gcry_md_close(f->hmac);
 #endif
 
-        free(f);
-        return NULL;
+        return mfree(f);
 }
 
 void journal_file_close_set(Set *s) {
index 293d27053afe2e533f079f58aff6419defa6955d..d91247b52449988c91bc74507b218f03b1e9cf41 100644 (file)
@@ -325,10 +325,8 @@ static FileDescriptor* fd_add(MMapCache *m, int fd) {
         f->fd = fd;
 
         r = hashmap_put(m->fds, FD_TO_PTR(fd), f);
-        if (r < 0) {
-                free(f);
-                return NULL;
-        }
+        if (r < 0)
+                return mfree(f);
 
         return f;
 }
index 98c8a47afeb2817c5dded98af4daf1e7d680e7df..f2f854608638f878d0f9acaaa0f7517f4d7fba65 100644 (file)
@@ -387,7 +387,7 @@ _public_ int sd_journal_add_disjunction(sd_journal *j) {
 }
 
 static char *match_make_string(Match *m) {
-        char *p, *r;
+        char *p = NULL, *r;
         Match *i;
         bool enclose = false;
 
@@ -397,15 +397,12 @@ static char *match_make_string(Match *m) {
         if (m->type == MATCH_DISCRETE)
                 return strndup(m->data, m->size);
 
-        p = NULL;
         LIST_FOREACH(matches, i, m->matches) {
                 char *t, *k;
 
                 t = match_make_string(i);
-                if (!t) {
-                        free(p);
-                        return NULL;
-                }
+                if (!t)
+                        return mfree(p);
 
                 if (p) {
                         k = strjoin(p, m->type == MATCH_OR_TERM ? " OR " : " AND ", t, NULL);
index d9950b638cb9519a3c99c8f094739e66a579e8a5..41ff2b353a2555561b4450b92aee37e73272a869 100644 (file)
@@ -49,8 +49,7 @@ _public_ sd_ndisc_router* sd_ndisc_router_unref(sd_ndisc_router *rt) {
         if (rt->n_ref > 0)
                 return NULL;
 
-        free(rt);
-        return NULL;
+        return mfree(rt);
 }
 
 sd_ndisc_router *ndisc_router_new(size_t raw_size) {
index 179e5950bd01c52169b1b73d317b0c0bd61f76ad..5ccb23922c9499d91cd55675afa023df90993526 100644 (file)
@@ -1873,9 +1873,7 @@ sd_dhcp_client *sd_dhcp_client_unref(sd_dhcp_client *client) {
         free(client->req_opts);
         free(client->hostname);
         free(client->vendor_class_identifier);
-        free(client);
-
-        return NULL;
+        return mfree(client);
 }
 
 int sd_dhcp_client_new(sd_dhcp_client **ret) {
index ef50ed17a15c6d4bae185c83d60bb6b099a5625a..8387b185c0fbd9f9018107fc6ac889f588b664f0 100644 (file)
@@ -282,9 +282,7 @@ sd_dhcp_lease *sd_dhcp_lease_unref(sd_dhcp_lease *lease) {
         free(lease->static_route);
         free(lease->client_id);
         free(lease->vendor_specific);
-        free(lease);
-
-        return NULL;
+        return mfree(lease);
 }
 
 static int lease_parse_u32(const uint8_t *option, size_t len, uint32_t *ret, uint32_t min) {
index 11ee2e252ed1e878371ff2a54912d91a35c2bbd8..f16314a37fbef630d81543952a16e533091750b3 100644 (file)
@@ -178,9 +178,7 @@ sd_dhcp_server *sd_dhcp_server_unref(sd_dhcp_server *server) {
         hashmap_free(server->leases_by_client_id);
 
         free(server->bound_leases);
-        free(server);
-
-        return NULL;
+        return mfree(server);
 }
 
 int sd_dhcp_server_new(sd_dhcp_server **ret, int ifindex) {
index 463fde401c0172e8ab16a6996a0cb12ec737b8eb..e81215f7d77ff737743b586ab2799dc918ff1e1d 100644 (file)
@@ -1300,9 +1300,7 @@ sd_dhcp6_client *sd_dhcp6_client_unref(sd_dhcp6_client *client) {
         sd_dhcp6_client_detach_event(client);
 
         free(client->req_opts);
-        free(client);
-
-        return NULL;
+        return mfree(client);
 }
 
 int sd_dhcp6_client_new(sd_dhcp6_client **ret) {
index 5c10a6326a3711b5feeab584d91338ea73340ea8..ab59977a3f914cb14e6c1f82ba2f831930e5b300 100644 (file)
@@ -389,9 +389,7 @@ sd_dhcp6_lease *sd_dhcp6_lease_unref(sd_dhcp6_lease *lease) {
         free(lease->ntp);
 
         lease->ntp_fqdn = strv_free(lease->ntp_fqdn);
-        free(lease);
-
-        return NULL;
+        return mfree(lease);
 }
 
 int dhcp6_lease_new(sd_dhcp6_lease **ret) {
index 662885840f9b21f2d85870c9e448a262d3882b87..4dd343c101e23eb73839e95598caba2931999352 100644 (file)
@@ -135,9 +135,7 @@ sd_ipv4acd *sd_ipv4acd_unref(sd_ipv4acd *acd) {
         ipv4acd_reset(acd);
         sd_ipv4acd_detach_event(acd);
 
-        free(acd);
-
-        return NULL;
+        return mfree(acd);
 }
 
 int sd_ipv4acd_new(sd_ipv4acd **ret) {
index 5603a533a5e679dc7fd20a3949e66cb98f18f9f1..13209261f94b2c00672a4dd30ed28455103cfbe1 100644 (file)
@@ -90,9 +90,7 @@ sd_ipv4ll *sd_ipv4ll_unref(sd_ipv4ll *ll) {
                 return NULL;
 
         sd_ipv4acd_unref(ll->acd);
-        free(ll);
-
-        return NULL;
+        return mfree(ll);
 }
 
 int sd_ipv4ll_new(sd_ipv4ll **ret) {
index 0bd1e66aa077da7087ce28b5ba0bc3897ed157ca..0702241506b1522d82e26a580bc77464a5c943b4 100644 (file)
@@ -374,9 +374,7 @@ _public_ sd_lldp* sd_lldp_unref(sd_lldp *lldp) {
 
         hashmap_free(lldp->neighbor_by_id);
         prioq_free(lldp->neighbor_by_expiry);
-        free(lldp);
-
-        return NULL;
+        return mfree(lldp);
 }
 
 _public_ int sd_lldp_new(sd_lldp **ret) {
index 07b0d7f70493909bb626de9486d65b90880bc725..1d3be9b86239ca61227068a8b62e932175142d78 100644 (file)
@@ -148,9 +148,7 @@ _public_ sd_ndisc *sd_ndisc_unref(sd_ndisc *nd) {
 
         ndisc_reset(nd);
         sd_ndisc_detach_event(nd);
-        free(nd);
-
-        return NULL;
+        return mfree(nd);
 }
 
 _public_ int sd_ndisc_new(sd_ndisc **ret) {
index 8e9074c7dfb44e4d45690aa0f74a40a106aff869..33590c31ac78764e23fc6da859ba97c92d77c194 100644 (file)
@@ -212,9 +212,7 @@ _public_ sd_bus_slot* sd_bus_slot_unref(sd_bus_slot *slot) {
 
         bus_slot_disconnect(slot);
         free(slot->description);
-        free(slot);
-
-        return NULL;
+        return mfree(slot);
 }
 
 _public_ sd_bus* sd_bus_slot_get_bus(sd_bus_slot *slot) {
index 00e93a215f759650726afd0a610b796c7c228989..4acaf247938167419c96a9d361c20a0f5a10f566 100644 (file)
@@ -74,9 +74,7 @@ static struct track_item* track_item_free(struct track_item *i) {
 
         sd_bus_slot_unref(i->slot);
         free(i->name);
-        free(i);
-
-        return NULL;
+        return mfree(i);
 }
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(struct track_item*, track_item_free);
@@ -206,9 +204,7 @@ _public_ sd_bus_track* sd_bus_track_unref(sd_bus_track *track) {
         bus_track_remove_from_queue(track);
         hashmap_free(track->names);
         sd_bus_unref(track->bus);
-        free(track);
-
-        return NULL;
+        return mfree(track);
 }
 
 static int on_name_owner_changed(sd_bus_message *message, void *userdata, sd_bus_error *error) {
index da496ed4563aa10c63d021cf9f0f2571e1aba5d6..0d51322a152d95e5f7c50f950214d1bf0ecc6246 100644 (file)
@@ -166,17 +166,16 @@ struct udev_list_entry *udev_list_entry_add(struct udev_list *list, const char *
         entry = new0(struct udev_list_entry, 1);
         if (entry == NULL)
                 return NULL;
+
         entry->name = strdup(name);
-        if (entry->name == NULL) {
-                free(entry);
-                return NULL;
-        }
+        if (entry->name == NULL)
+                return mfree(entry);
+
         if (value != NULL) {
                 entry->value = strdup(value);
                 if (entry->value == NULL) {
                         free(entry->name);
-                        free(entry);
-                        return NULL;
+                        return mfree(entry);
                 }
         }
 
@@ -193,8 +192,7 @@ struct udev_list_entry *udev_list_entry_add(struct udev_list *list, const char *
                         if (entries == NULL) {
                                 free(entry->name);
                                 free(entry->value);
-                                free(entry);
-                                return NULL;
+                                return mfree(entry);
                         }
                         list->entries = entries;
                         list->entries_max += add;
index 1f9d16c45084ff91bf3e129e69172f8a3b684390..a1f2b33ad5e3ce6f90f51eb7daf8d9a813b6cf46 100644 (file)
@@ -207,8 +207,7 @@ struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const c
                 udev_monitor->sock = socket(PF_NETLINK, SOCK_RAW|SOCK_CLOEXEC|SOCK_NONBLOCK, NETLINK_KOBJECT_UEVENT);
                 if (udev_monitor->sock < 0) {
                         log_debug_errno(errno, "error getting socket: %m");
-                        free(udev_monitor);
-                        return NULL;
+                        return mfree(udev_monitor);
                 }
         } else {
                 udev_monitor->bound = true;
index baa6b7113c1038ff4f706589273ad3d421f29d10..90fb93bbaf85ecc6b80bd3383cfcc6381eb59dd7 100644 (file)
@@ -43,15 +43,12 @@ Button* button_new(Manager *m, const char *name) {
                 return NULL;
 
         b->name = strdup(name);
-        if (!b->name) {
-                free(b);
-                return NULL;
-        }
+        if (!b->name)
+                return mfree(b);
 
         if (hashmap_put(m->buttons, b->name, b) < 0) {
                 free(b->name);
-                free(b);
-                return NULL;
+                return mfree(b);
         }
 
         b->manager = m;
index eb5edd1cd5e11d2ce8ef2731668a1e65701497ad..6537fa04bfcbd6685fa5132d28ca508aea81b591 100644 (file)
@@ -34,15 +34,12 @@ Device* device_new(Manager *m, const char *sysfs, bool master) {
                 return NULL;
 
         d->sysfs = strdup(sysfs);
-        if (!d->sysfs) {
-                free(d);
-                return NULL;
-        }
+        if (!d->sysfs)
+                return mfree(d);
 
         if (hashmap_put(m->devices, d->sysfs, d) < 0) {
                 free(d->sysfs);
-                free(d);
-                return NULL;
+                return mfree(d);
         }
 
         d->manager = m;
index 6c78e0dddc9f0d8e255a2e2b2d0614001750084a..c93b24009bbc451ebca77c987c6f3606be18cd2f 100644 (file)
@@ -45,17 +45,14 @@ Inhibitor* inhibitor_new(Manager *m, const char* id) {
                 return NULL;
 
         i->state_file = strappend("/run/systemd/inhibit/", id);
-        if (!i->state_file) {
-                free(i);
-                return NULL;
-        }
+        if (!i->state_file)
+                return mfree(i);
 
         i->id = basename(i->state_file);
 
         if (hashmap_put(m->inhibitors, i->id, i) < 0) {
                 free(i->state_file);
-                free(i);
-                return NULL;
+                return mfree(i);
         }
 
         i->manager = m;
index b5192320e4827373794806c87b1f1e99e48559a3..ecc7bd2e5b9b28b833dd869225a5f342952805cf 100644 (file)
@@ -48,18 +48,15 @@ Seat *seat_new(Manager *m, const char *id) {
                 return NULL;
 
         s->state_file = strappend("/run/systemd/seats/", id);
-        if (!s->state_file) {
-                free(s);
-                return NULL;
-        }
+        if (!s->state_file)
+                return mfree(s);
 
         s->id = basename(s->state_file);
         s->manager = m;
 
         if (hashmap_put(m->seats, s->id, s) < 0) {
                 free(s->state_file);
-                free(s);
-                return NULL;
+                return mfree(s);
         }
 
         return s;
index ba1bcc2630b70eee25c7d66acc4b3633a535e419..cbf035f706e206931aaeffa1edb74c69606be1bd 100644 (file)
@@ -62,16 +62,13 @@ Session* session_new(Manager *m, const char *id) {
                 return NULL;
 
         s->state_file = strappend("/run/systemd/sessions/", id);
-        if (!s->state_file) {
-                free(s);
-                return NULL;
-        }
+        if (!s->state_file)
+                return mfree(s);
 
         s->devices = hashmap_new(&devt_hash_ops);
         if (!s->devices) {
                 free(s->state_file);
-                free(s);
-                return NULL;
+                return mfree(s);
         }
 
         s->id = basename(s->state_file);
@@ -79,8 +76,7 @@ Session* session_new(Manager *m, const char *id) {
         if (hashmap_put(m->sessions, s->id, s) < 0) {
                 hashmap_free(s->devices);
                 free(s->state_file);
-                free(s);
-                return NULL;
+                return mfree(s);
         }
 
         s->manager = m;
index dd046d656381b8076a79cee8e21987803e1ab961..a02b9d7575f4c98fec8711758fc63772049742d0 100644 (file)
@@ -80,9 +80,7 @@ Machine* machine_new(Manager *manager, MachineClass class, const char *name) {
 fail:
         free(m->state_file);
         free(m->name);
-        free(m);
-
-        return NULL;
+        return mfree(m);
 }
 
 void machine_free(Machine *m) {
index 2bf93cb49336a10e629362a8916df8d02e8f17b6..c966d0d21c07da26493cf2bcc9b7fe48a1887884 100644 (file)
@@ -147,6 +147,5 @@ Operation *operation_free(Operation *o) {
         if (o->machine)
                 LIST_REMOVE(operations_by_machine, o->machine->operations, o);
 
-        free(o);
-        return NULL;
+        return mfree(o);
 }
index 5727422e3d26ed819a6ed2d471d86efe9d11a93a..e63ba07e909525bf0ead0d03f427a14f287193af 100644 (file)
@@ -77,8 +77,7 @@ Link *link_free(Link *l) {
         }
 
         free(l->ifname);
-        free(l);
-        return NULL;
+        return mfree(l);
  }
 
 int link_update_rtnl(Link *l, sd_netlink_message *m) {
index 5f1522cfb689cd1bf29ac10c0d21ea45d4649412..09c8f070baaaf0adbddcb6679194e7ca17c9bf4d 100644 (file)
@@ -101,9 +101,7 @@ Settings* settings_free(Settings *s) {
         expose_port_free_all(s->expose_ports);
 
         custom_mount_free_all(s->custom_mounts, s->n_custom_mounts);
-        free(s);
-
-        return NULL;
+        return mfree(s);
 }
 
 bool settings_private_network(Settings *s) {
index 53be18efc6a97677e004ee39c56944fda58a87ab..e03db4d003ee3630ec9a6d1fbd9a96a7ef27c5cb 100644 (file)
@@ -83,9 +83,7 @@ DnsQueryCandidate* dns_query_candidate_free(DnsQueryCandidate *c) {
         if (c->scope)
                 LIST_REMOVE(candidates_by_scope, c->scope->query_candidates, c);
 
-        free(c);
-
-        return NULL;
+        return mfree(c);
 }
 
 static int dns_query_candidate_next_search_domain(DnsQueryCandidate *c) {
@@ -421,9 +419,7 @@ DnsQuery *dns_query_free(DnsQuery *q) {
                 q->manager->n_dns_queries--;
         }
 
-        free(q);
-
-        return NULL;
+        return mfree(q);
 }
 
 int dns_query_new(
index 5687588a7d5e5d88235cf11c834e9a7b07ea4d51..87e4abec6ee459e74ccfa6aff45664f53412db34 100644 (file)
@@ -73,10 +73,8 @@ DnsResourceKey* dns_resource_key_new_redirect(const DnsResourceKey *key, const D
                         return dns_resource_key_ref((DnsResourceKey*) key);
 
                 k = dns_resource_key_new_consume(key->class, key->type, destination);
-                if (!k) {
-                        free(destination);
-                        return NULL;
-                }
+                if (!k)
+                        return mfree(destination);
 
                 return k;
         }
@@ -513,9 +511,7 @@ DnsResourceRecord* dns_resource_record_unref(DnsResourceRecord *rr) {
         }
 
         free(rr->to_string);
-        free(rr);
-
-        return NULL;
+        return mfree(rr);
 }
 
 int dns_resource_record_new_reverse(DnsResourceRecord **ret, int family, const union in_addr_union *address, const char *hostname) {
index 03811ac8e74ce7565dcbbf14848a6e7c24bf4bb5..8dbc7f623b8faa576e8facd025ebf8022ab1dd82 100644 (file)
@@ -128,9 +128,7 @@ DnsScope* dns_scope_free(DnsScope *s) {
         dns_zone_flush(&s->zone);
 
         LIST_REMOVE(scopes, s->manager->dns_scopes, s);
-        free(s);
-
-        return NULL;
+        return mfree(s);
 }
 
 DnsServer *dns_scope_get_dns_server(DnsScope *s) {
index 732471027bca53ec1cfcf08165203ae84ed19cb3..1386e6a17b4e0bb2c9f7b90f0b1b14098ec38f94 100644 (file)
@@ -104,9 +104,7 @@ DnsSearchDomain* dns_search_domain_unref(DnsSearchDomain *d) {
                 return NULL;
 
         free(d->name);
-        free(d);
-
-        return NULL;
+        return mfree(d);
 }
 
 void dns_search_domain_unlink(DnsSearchDomain *d) {
index 97cc8c0e09ee80b810fcbe69cd9b6d635ded734e..7282848e35de1bf13f346c604d17f6b2e560c2ec 100644 (file)
@@ -139,8 +139,7 @@ DnsServer* dns_server_unref(DnsServer *s)  {
                 return NULL;
 
         free(s->server_string);
-        free(s);
-        return NULL;
+        return mfree(s);
 }
 
 void dns_server_unlink(DnsServer *s) {
index dd0e0b90e35ab50d8f8d7d268d8bb16ec48508d1..878bae47dc3e446718f8665f044aa26ad5928c41 100644 (file)
@@ -343,9 +343,7 @@ DnsStream *dns_stream_unref(DnsStream *s) {
         dns_packet_unref(s->write_packet);
         dns_packet_unref(s->read_packet);
 
-        free(s);
-
-        return NULL;
+        return mfree(s);
 }
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(DnsStream*, dns_stream_unref);
index d455b6b1faa73ff2cfc97083a9a799de538318e1..2fce44ec8b74e0d821572e2c8f0a4689cdda39e7 100644 (file)
@@ -134,8 +134,7 @@ DnsTransaction* dns_transaction_free(DnsTransaction *t) {
         dns_answer_unref(t->validated_keys);
         dns_resource_key_unref(t->key);
 
-        free(t);
-        return NULL;
+        return mfree(t);
 }
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(DnsTransaction*, dns_transaction_free);
index ea4a0071395ace61a3442f9d332571c58ebee92a..13e1f91192ecdf2797ea69ee6e9bceba3b333160 100644 (file)
@@ -101,8 +101,7 @@ Link *link_free(Link *l) {
 
         free(l->state_file);
 
-        free(l);
-        return NULL;
+        return mfree(l);
 }
 
 void link_allocate_scopes(Link *l) {
@@ -698,8 +697,7 @@ LinkAddress *link_address_free(LinkAddress *a) {
         dns_resource_record_unref(a->llmnr_address_rr);
         dns_resource_record_unref(a->llmnr_ptr_rr);
 
-        free(a);
-        return NULL;
+        return mfree(a);
 }
 
 void link_address_add_rrs(LinkAddress *a, bool force_remove) {
index 40f08e8044a818e965aa5e9649544f4aee301727..0954641c20a0f4a6d9901f060e6b7940a68bdff2 100644 (file)
@@ -630,9 +630,7 @@ Manager *manager_free(Manager *m) {
         dns_trust_anchor_flush(&m->trust_anchor);
         manager_etc_hosts_flush(m);
 
-        free(m);
-
-        return NULL;
+        return mfree(m);
 }
 
 int manager_recv(Manager *m, int fd, DnsProtocol protocol, DnsPacket **ret) {
index 529d89ee2a27b4663f6f982125207be023c262b6..060f8d50c716b85615fe3b46b806957f392d7922 100644 (file)
@@ -62,8 +62,7 @@ Image *image_unref(Image *i) {
 
         free(i->name);
         free(i->path);
-        free(i);
-        return NULL;
+        return mfree(i);
 }
 
 static char **image_settings_path(Image *image) {
index 24055e772bbf51d26b0f165f25f302fef1bf24f3..293c6673fc43980768ad1daf2b79fb2dbc8ef1f2 100644 (file)
@@ -463,8 +463,7 @@ int pty_forward_new(
 
 PTYForward *pty_forward_free(PTYForward *f) {
         pty_forward_disconnect(f);
-        free(f);
-        return NULL;
+        return mfree(f);
 }
 
 int pty_forward_get_last_char(PTYForward *f, char *ch) {
index 6bda86fe6ebbb8820466a4f54025d480e972619c..57a7bf2c25fba6e756090a0b37b3415103664e93 100644 (file)
@@ -61,8 +61,7 @@ ServerAddress* server_address_free(ServerAddress *a) {
                         manager_set_server_address(a->name->manager, NULL);
         }
 
-        free(a);
-        return NULL;
+        return mfree(a);
 }
 
 int server_name_new(
@@ -137,9 +136,7 @@ ServerName *server_name_free(ServerName *n) {
         log_debug("Removed server %s.", n->string);
 
         free(n->string);
-        free(n);
-
-        return NULL;
+        return mfree(n);
 }
 
 void server_name_flush_addresses(ServerName *n) {
index f68a09d7a8cc28ef3a52248ae960f27881e5d42b..7717ac7924aa2b36fe8c67442c60fcbbd0fbe903 100644 (file)
@@ -211,8 +211,7 @@ struct udev_ctrl_connection *udev_ctrl_get_connection(struct udev_ctrl *uctrl) {
 err:
         if (conn->sock >= 0)
                 close(conn->sock);
-        free(conn);
-        return NULL;
+        return mfree(conn);
 }
 
 struct udev_ctrl_connection *udev_ctrl_connection_ref(struct udev_ctrl_connection *conn) {
index 26fa52cf6c046dd2b3a957a0a50fd476e90c540c..7619c8371b5ea32ad8dc300a934ad60af09f667a 100644 (file)
@@ -1583,8 +1583,7 @@ struct udev_rules *udev_rules_unref(struct udev_rules *rules) {
         strbuf_cleanup(rules->strbuf);
         free(rules->uids);
         free(rules->gids);
-        free(rules);
-        return NULL;
+        return mfree(rules);
 }
 
 bool udev_rules_check_timestamp(struct udev_rules *rules) {