mirror of
https://github.com/systemd/systemd.git
synced 2025-02-27 01:57:35 +03:00
networkd: manager - don't leak kmod context
Also, keep the kmod_new internal to networkd-manager.c
This commit is contained in:
parent
7c8ec321e7
commit
0b44d8c3d7
@ -353,6 +353,8 @@ int load_module(struct kmod_ctx *ctx, const char *mod_name) {
|
||||
log_error("Failed to insert '%s': %s", kmod_module_get_name(mod),
|
||||
strerror(-r));
|
||||
}
|
||||
|
||||
kmod_module_unref(mod);
|
||||
}
|
||||
|
||||
kmod_module_unref_list(modlist);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -87,12 +87,6 @@ int main(int argc, char *argv[]) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
r = manager_init_kmod_ctx(m);
|
||||
if (r < 0) {
|
||||
log_error("Could not init kmod context: %s", strerror(-r));
|
||||
goto out;
|
||||
}
|
||||
|
||||
r = manager_rtnl_enumerate_links(m);
|
||||
if (r < 0) {
|
||||
log_error("Could not enumerate links: %s", strerror(-r));
|
||||
|
@ -277,7 +277,6 @@ int manager_bus_listen(Manager *m);
|
||||
|
||||
int manager_update_resolv_conf(Manager *m);
|
||||
int manager_save(Manager *m);
|
||||
int manager_init_kmod_ctx(Manager *m);
|
||||
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
|
||||
#define _cleanup_manager_free_ _cleanup_(manager_freep)
|
||||
|
Loading…
x
Reference in New Issue
Block a user