summaryrefslogtreecommitdiff
path: root/src/network/networkd-manager.c
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2014-05-12 17:11:13 +0200
committerTom Gundersen <teg@jklm.no>2014-05-12 17:37:58 +0200
commit0b44d8c3d7dfadb60b30c9339b18c4cc1617b51b (patch)
tree5e6207335195e8028da3976dad330c1a25e90aaa /src/network/networkd-manager.c
parent7c8ec321e7b6fd97a6eb4b9a3daa16c51b97a74a (diff)
networkd: manager - don't leak kmod context
Also, keep the kmod_new internal to networkd-manager.c
Diffstat (limited to 'src/network/networkd-manager.c')
-rw-r--r--src/network/networkd-manager.c20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c
index cfa3a9900a..cc55f9a17a 100644
--- a/src/network/networkd-manager.c
+++ b/src/network/networkd-manager.c
@@ -118,6 +118,10 @@ int manager_new(Manager **ret) {
return -ENOMEM;
}
+ m->kmod_ctx = kmod_new(NULL, NULL);
+ if (!m->kmod_ctx)
+ return -ENOMEM;
+
m->links = hashmap_new(uint64_hash_func, uint64_compare_func);
if (!m->links)
return -ENOMEM;
@@ -144,6 +148,7 @@ void manager_free(Manager *m) {
free(m->state_file);
+ kmod_unref(m->kmod_ctx);
udev_monitor_unref(m->udev_monitor);
udev_unref(m->udev);
sd_bus_unref(m->bus);
@@ -552,18 +557,3 @@ finish:
return r;
}
-
-int manager_init_kmod_ctx(Manager *m) {
- struct kmod_ctx *ctx;
-
- assert(m);
-
- ctx = kmod_new(NULL, NULL);
- if (!ctx) {
- return -ENOMEM;
- }
-
- m->kmod_ctx = ctx;
-
- return 0;
-}