From 7d20d3759e375367c36471906ba898c6909d5132 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Fri, 9 Oct 2015 21:36:04 +0200 Subject: networkd: manager - free bus after own objects Freeing links/addresses may trigger sending signals over the bus, so let's make sure the bus stays around until our own objects have been freed. --- src/network/networkd-manager.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index b4259cafef..e42f2a4c1e 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -477,14 +477,6 @@ void manager_free(Manager *m) { free(m->state_file); - sd_event_source_unref(m->udev_event_source); - udev_monitor_unref(m->udev_monitor); - udev_unref(m->udev); - - sd_bus_unref(m->bus); - sd_bus_slot_unref(m->prepare_for_sleep_slot); - sd_event_source_unref(m->bus_retry_event_source); - while ((link = hashmap_first(m->links))) link_unref(link); hashmap_free(m->links); @@ -504,6 +496,14 @@ void manager_free(Manager *m) { sd_netlink_unref(m->rtnl); sd_event_unref(m->event); + sd_event_source_unref(m->udev_event_source); + udev_monitor_unref(m->udev_monitor); + udev_unref(m->udev); + + sd_bus_unref(m->bus); + sd_bus_slot_unref(m->prepare_for_sleep_slot); + sd_event_source_unref(m->bus_retry_event_source); + free(m); } -- cgit v1.2.3-54-g00ecf