FileChooserWidget: Avoid crash freeing static str
authorDaniel Boles <dboles@src.gnome.org>
Mon, 12 Mar 2018 22:44:37 +0000 (22:44 +0000)
committerDaniel Boles <dboles@src.gnome.org>
Mon, 12 Mar 2018 23:06:21 +0000 (23:06 +0000)
Having a FileChooserDialog in location-entry mode then pressing
<primary>f to move to search mode would crash with an invalid free().

In that case, FileChooserWidget.get_subtitle() returned a static string
straight from gettext. This crashed when the GBinding from :subtitle to
FileChooserDialog’s HeaderBar:subtitle shortly tried to free the string.

Fix by duplicating the string before returning it, like all other paths.

https://bugzilla.gnome.org/show_bug.cgi?id=791004

gtk/gtkfilechooserwidget.c

index 5e9557ae7508cb9f69932ed0f43fd246fe98d5fc..e7e2d96234df20148e4cb46ac526bf293486b80c 100644 (file)
@@ -3271,7 +3271,7 @@ gtk_file_chooser_widget_get_subtitle (GtkFileChooserWidget *impl)
     {
       gchar *location;
 
-      subtitle = _("Searching");
+      subtitle = g_strdup (_("Searching"));
 
       location = gtk_places_sidebar_get_location_title (GTK_PLACES_SIDEBAR (priv->places_sidebar));
       if (location)