chiark / gitweb /
resolved: fix order in which we destroy manager resources
[elogind.git] / src / resolve / resolved-manager.c
index 5061d39c4630b6ac9f1994adc492e708182eef53..db346cc0e54ff5abe63c99570eb37a8a6f516ced 100644 (file)
@@ -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);