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
This commit is contained in:
Diego Iván M.E
2024-08-27 13:40:28 +00:00
committed by Georges Basile Stavracas Neto
parent 2df48b6fc2
commit 9443520411
+4 -2
View File
@@ -1371,6 +1371,7 @@ gcal_create_writable_calendars_model (GcalManager *manager)
{ {
GtkBoolFilter *bool_filter; GtkBoolFilter *bool_filter;
GtkExpression *expression; GtkExpression *expression;
GListModel *calendars;
g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL); 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); bool_filter = gtk_bool_filter_new (expression);
gtk_bool_filter_set_invert (bool_filter, TRUE); 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)), calendars = gcal_manager_get_calendars_model (manager);
GTK_FILTER (bool_filter))); return G_LIST_MODEL (gtk_filter_list_model_new (g_object_ref (calendars), GTK_FILTER (bool_filter)));
} }