From 75c2db1a73bf3989695a48822d769b347dd0b2f9 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Thu, 14 Sep 2017 13:07:12 +0200 Subject: [PATCH] Fix some leaks g_variant_dict_end() returns a floating reference, we have to sink it before using it with a g_autoptr. --- common/flatpak-dir.c | 2 +- common/flatpak-utils.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c index 94661d44..b0b3da78 100644 --- a/common/flatpak-dir.c +++ b/common/flatpak-dir.c @@ -2418,7 +2418,7 @@ flatpak_dir_pull_extra_data (FlatpakDir *self, g_variant_dict_init (&new_metadata_dict, detached_metadata); g_variant_dict_insert_value (&new_metadata_dict, "xa.extra-data", extra_data); - new_detached_metadata = g_variant_dict_end (&new_metadata_dict); + new_detached_metadata = g_variant_ref_sink (g_variant_dict_end (&new_metadata_dict)); /* There is a commitmeta size limit when pulling, so we have to side-load it when installing in the system repo */ diff --git a/common/flatpak-utils.c b/common/flatpak-utils.c index 63d455ab..d3a665a9 100644 --- a/common/flatpak-utils.c +++ b/common/flatpak-utils.c @@ -3338,7 +3338,7 @@ flatpak_repo_update (OstreeRepo *repo, "s", collection_ref.collection_id); g_variant_dict_insert_value (new_summary_commit_dict, "ostree.ref-binding", g_variant_new_strv ((const gchar * const *) &collection_ref.ref_name, 1)); - new_summary_commit = g_variant_dict_end (new_summary_commit_dict); + new_summary_commit = g_variant_ref_sink (g_variant_dict_end (new_summary_commit_dict)); if (!ostree_repo_prepare_transaction (repo, NULL, cancellable, error)) goto out; @@ -3968,7 +3968,7 @@ flatpak_repo_generate_appstream (OstreeRepo *repo, "s", (collection_id != NULL) ? collection_id : ""); g_variant_dict_insert_value (metadata_dict, "ostree.ref-binding", g_variant_new_strv ((const gchar * const *) &branch, 1)); - metadata = g_variant_dict_end (metadata_dict); + metadata = g_variant_ref_sink (g_variant_dict_end (metadata_dict)); if (timestamp > 0) {