chiark / gitweb /
sd-resolve: make sure we can destroy a query object from its own callback handler
[elogind.git] / src / libsystemd / sd-resolve / sd-resolve.c
index cb8e34e3688e85ba53df331d9b7d329facd7f34b..3f699ce23280cef2597b52412796da3fa882e03f 100644 (file)
@@ -737,7 +737,7 @@ static int complete_query(sd_resolve *resolve, sd_resolve_query *q) {
         q->done = true;
         resolve->n_done ++;
 
-        resolve->current = q;
+        resolve->current = sd_resolve_query_ref(q);
 
         switch (q->type) {
 
@@ -758,7 +758,7 @@ static int complete_query(sd_resolve *resolve, sd_resolve_query *q) {
                 assert_not_reached("Cannot complete unknown query type");
         }
 
-        resolve->current = NULL;
+        resolve->current = sd_resolve_query_unref(q);
 
         return r;
 }