chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
resolved: fix order in which we destroy manager resources
[elogind.git]
/
src
/
resolve
/
resolved-manager.c
diff --git
a/src/resolve/resolved-manager.c
b/src/resolve/resolved-manager.c
index 5061d39c4630b6ac9f1994adc492e708182eef53..db346cc0e54ff5abe63c99570eb37a8a6f516ced 100644
(file)
--- 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;
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);
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);
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);
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);
sd_event_source_unref(m->network_event_source);
sd_network_monitor_unref(m->network_monitor);