mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 19:00:08 +00:00
bgo#514843 - [filechooser] Deal with corrupted .gtk-bookmarks gracefully
We weren't checking for the lines in that file being valid UTF-8 strings.
This commit is contained in:
parent
70d70a0607
commit
7550157d66
@ -264,6 +264,9 @@ read_bookmarks (GFile *file)
|
||||
if (!*lines[i])
|
||||
continue;
|
||||
|
||||
if (!g_utf8_validate (lines[i], -1, NULL))
|
||||
continue;
|
||||
|
||||
bookmark = g_slice_new0 (GtkFileSystemBookmark);
|
||||
|
||||
if ((space = strchr (lines[i], ' ')) != NULL)
|
||||
@ -289,23 +292,25 @@ save_bookmarks (GFile *bookmarks_file,
|
||||
{
|
||||
GError *error = NULL;
|
||||
GString *contents;
|
||||
GSList *l;
|
||||
|
||||
contents = g_string_new ("");
|
||||
|
||||
while (bookmarks)
|
||||
for (l = bookmarks; l; l = l->next)
|
||||
{
|
||||
GtkFileSystemBookmark *bookmark;
|
||||
GtkFileSystemBookmark *bookmark = l->data;
|
||||
gchar *uri;
|
||||
|
||||
bookmark = bookmarks->data;
|
||||
uri = g_file_get_uri (bookmark->file);
|
||||
if (!uri)
|
||||
continue;
|
||||
|
||||
g_string_append (contents, uri);
|
||||
|
||||
if (bookmark->label)
|
||||
g_string_append_printf (contents, " %s", bookmark->label);
|
||||
|
||||
g_string_append_c (contents, '\n');
|
||||
bookmarks = bookmarks->next;
|
||||
g_free (uri);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user