From 94435204116474f7ab403e24cd9d245ffb1bed76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Iv=C3=A1n=20M=2EE?= Date: Mon, 26 Aug 2024 10:21:21 -0600 Subject: [PATCH] utils: Fix double free in gcal_create_writable_calendars_model gtk_filter_list_model_new expected that the model passed to be an owned reference, but we were passing an unowned one, causing a double free after the function is called repeatedly. This was particularly noticeable in the importer dialog. Fixes #1282 --- src/utils/gcal-utils.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/utils/gcal-utils.c b/src/utils/gcal-utils.c index c78549f8..ccc8a82a 100644 --- a/src/utils/gcal-utils.c +++ b/src/utils/gcal-utils.c @@ -1371,6 +1371,7 @@ gcal_create_writable_calendars_model (GcalManager *manager) { GtkBoolFilter *bool_filter; GtkExpression *expression; + GListModel *calendars; g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL); @@ -1379,6 +1380,7 @@ gcal_create_writable_calendars_model (GcalManager *manager) bool_filter = gtk_bool_filter_new (expression); gtk_bool_filter_set_invert (bool_filter, TRUE); - return G_LIST_MODEL (gtk_filter_list_model_new (G_LIST_MODEL (gcal_manager_get_calendars_model (manager)), - GTK_FILTER (bool_filter))); + calendars = gcal_manager_get_calendars_model (manager); + return G_LIST_MODEL (gtk_filter_list_model_new (g_object_ref (calendars), GTK_FILTER (bool_filter))); } +