From b8aaa10a9161795809f6411afb80c95ea0e8849b Mon Sep 17 00:00:00 2001 From: Andy Holmes Date: Thu, 13 Jun 2024 11:43:00 -0700 Subject: [PATCH] gthreadedresolver: ref-sink returned records in lookup_records() The return value to `lookup_records()` methods is set as `transfer full` but the code path in `g_resolver_records_from_res_query()` doesn't sink the GVariant. Add the `g_variant_ref_sink()` call when prepending the record, so the list hold a full reference on each records. closes #3393 --- gio/gthreadedresolver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gio/gthreadedresolver.c b/gio/gthreadedresolver.c index b8588e77e..eb4d76ff5 100644 --- a/gio/gthreadedresolver.c +++ b/gio/gthreadedresolver.c @@ -1079,7 +1079,7 @@ g_resolver_records_from_res_query (const gchar *rrname, } if (record != NULL) - records = g_list_prepend (records, record); + records = g_list_prepend (records, g_variant_ref_sink (record)); if (parsing_error != NULL) break;