From 9aedafa39e77eca777ca0abe78636aa6d4b1aff2 Mon Sep 17 00:00:00 2001 From: Daniel Boles Date: Tue, 13 Mar 2018 00:19:51 +0000 Subject: [PATCH] FileChooserWidget: Fix leaks in .get_subtitle() Now that subtitle's default value "Searching" for OPERATION_MODE_SEARCH is duplicated as it should be, we cannot reassign other strings to it anymore, as that resulted in the original dupe of "Searching" leaking. Fix this by only assigning the dup'd "Searching" after trying to get more specific values, not before. We therefore need to set it to NULL during its declaration, and that means we needn't in the final else. --- gtk/gtkfilechooserwidget.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index e94de516bd..b23f1dbf00 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -3192,14 +3192,12 @@ static gchar * gtk_file_chooser_widget_get_subtitle (GtkFileChooserWidget *impl) { GtkFileChooserWidgetPrivate *priv = impl->priv; - gchar *subtitle; + gchar *subtitle = NULL; if (priv->operation_mode == OPERATION_MODE_SEARCH) { gchar *location; - subtitle = g_strdup (_("Searching")); - location = gtk_places_sidebar_get_location_title (GTK_PLACES_SIDEBAR (priv->places_sidebar)); if (location) { @@ -3221,6 +3219,9 @@ gtk_file_chooser_widget_get_subtitle (GtkFileChooserWidget *impl) g_object_unref (info); } } + + if (subtitle == NULL) + subtitle = g_strdup (_("Searching")); } else if (priv->operation_mode == OPERATION_MODE_ENTER_LOCATION || (priv->operation_mode == OPERATION_MODE_BROWSE && @@ -3231,10 +3232,6 @@ gtk_file_chooser_widget_get_subtitle (GtkFileChooserWidget *impl) else subtitle = g_strdup (_("Enter location or URL")); } - else - { - subtitle = NULL; - } return subtitle; }