From f0e4293b8392c9d95ba3f98efb117b5ca411325c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Wed, 8 Mar 2023 00:28:25 +0100 Subject: [PATCH] filechooser: Fix memory leaks The returned strings from `file_chooser_get_location()` were never freed. --- gtk/gtkfilechooserwidget.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 9f084a6e77..2ab5050fd4 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -6989,15 +6989,20 @@ location_sort_func (gconstpointer a, gpointer user_data) { GtkFileChooserWidget *impl = user_data; + char *location_a, *location_b; char *key_a, *key_b; GtkOrdering result; /* FIXME: use sortkeys for these */ - key_a = g_utf8_collate_key_for_filename (file_chooser_get_location (impl, (GFileInfo *)a), -1); - key_b = g_utf8_collate_key_for_filename (file_chooser_get_location (impl, (GFileInfo *)b), -1); + location_a = file_chooser_get_location (impl, (GFileInfo *)a); + location_b = file_chooser_get_location (impl, (GFileInfo *)b); + key_a = g_utf8_collate_key_for_filename (location_a, -1); + key_b = g_utf8_collate_key_for_filename (location_b, -1); result = g_strcmp0 (key_a, key_b); + g_free (location_a); + g_free (location_b); g_free (key_a); g_free (key_b); -- 2.30.2