filechooser: Fix memory leaks
authorBarnabás Pőcze <pobrn@protonmail.com>
Tue, 7 Mar 2023 23:28:25 +0000 (00:28 +0100)
committerBarnabás Pőcze <pobrn@protonmail.com>
Wed, 8 Mar 2023 02:59:10 +0000 (03:59 +0100)
The returned strings from `file_chooser_get_location()` were never freed.

gtk/gtkfilechooserwidget.c

index 9f084a6e77f8e2a023dfed3d3f4585ddc22af755..2ab5050fd4b3d215bbf8e611d40b652fde74c3dd 100644 (file)
@@ -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);