From: Lennart Poettering Date: Mon, 4 Aug 2014 17:59:05 +0000 (+0200) Subject: resolved: fix order in which we destroy manager resources X-Git-Tag: v216~260 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=f0e1546763304aedc90e91d70dab9eeb7c966cf8 resolved: fix order in which we destroy manager resources --- diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c index 5061d39c4..db346cc0e 100644 --- a/src/resolve/resolved-manager.c +++ b/src/resolve/resolved-manager.c @@ -524,14 +524,11 @@ Manager *manager_free(Manager *m) { if (!m) return NULL; - while (m->dns_queries) - dns_query_free(m->dns_queries); - - hashmap_free(m->dns_transactions); - while ((l = hashmap_first(m->links))) link_free(l); - hashmap_free(m->links); + + while (m->dns_queries) + dns_query_free(m->dns_queries); dns_scope_free(m->unicast_scope); @@ -540,6 +537,9 @@ Manager *manager_free(Manager *m) { while (m->fallback_dns_servers) dns_server_free(m->fallback_dns_servers); + hashmap_free(m->links); + hashmap_free(m->dns_transactions); + sd_event_source_unref(m->network_event_source); sd_network_monitor_unref(m->network_monitor);