f4801b5efc
Update to 3.25.90
156 lines
4.9 KiB
Diff
156 lines
4.9 KiB
Diff
From b5a674a757d4ad934eb505f4e3c50ee1180f3693 Mon Sep 17 00:00:00 2001
|
|
From: Bastien Nocera <hadess@hadess.net>
|
|
Date: Tue, 8 Aug 2017 19:12:51 +0200
|
|
Subject: [PATCH 1/3] thumbnail: Don't crash if the thumbnailer could not be
|
|
setup
|
|
|
|
script_exec_new() can fail in certain cases, and we should not crash
|
|
when trying to expand the script command later if the initial setup
|
|
failed.
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=785963
|
|
---
|
|
libgnome-desktop/gnome-desktop-thumbnail-script.c | 5 +++++
|
|
1 file changed, 5 insertions(+)
|
|
|
|
diff --git a/libgnome-desktop/gnome-desktop-thumbnail-script.c b/libgnome-desktop/gnome-desktop-thumbnail-script.c
|
|
index 5a5f05f4..d9437d40 100644
|
|
--- a/libgnome-desktop/gnome-desktop-thumbnail-script.c
|
|
+++ b/libgnome-desktop/gnome-desktop-thumbnail-script.c
|
|
@@ -657,6 +657,9 @@ child_setup (gpointer user_data)
|
|
static void
|
|
script_exec_free (ScriptExec *exec)
|
|
{
|
|
+ if (exec == NULL)
|
|
+ return;
|
|
+
|
|
g_free (exec->infile);
|
|
if (exec->outfile)
|
|
{
|
|
@@ -757,6 +760,8 @@ gnome_desktop_thumbnail_script_exec (const char *cmd,
|
|
ScriptExec *exec;
|
|
|
|
exec = script_exec_new (uri);
|
|
+ if (!exec)
|
|
+ goto out;
|
|
expanded_script = expand_thumbnailing_cmd (cmd, exec, size, error);
|
|
if (expanded_script == NULL)
|
|
goto out;
|
|
--
|
|
2.13.4
|
|
|
|
|
|
From 99df9a83a36882d8a666176d9452283ae065d014 Mon Sep 17 00:00:00 2001
|
|
From: Bastien Nocera <hadess@hadess.net>
|
|
Date: Tue, 8 Aug 2017 19:14:09 +0200
|
|
Subject: [PATCH 2/3] thumbnail: Report errors when script_exec_new() fails
|
|
|
|
Makes it easier to debug.
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=785963
|
|
---
|
|
libgnome-desktop/gnome-desktop-thumbnail-script.c | 19 ++++++++++++++-----
|
|
1 file changed, 14 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/libgnome-desktop/gnome-desktop-thumbnail-script.c b/libgnome-desktop/gnome-desktop-thumbnail-script.c
|
|
index d9437d40..1012efa8 100644
|
|
--- a/libgnome-desktop/gnome-desktop-thumbnail-script.c
|
|
+++ b/libgnome-desktop/gnome-desktop-thumbnail-script.c
|
|
@@ -687,7 +687,8 @@ clear_fd (gpointer data)
|
|
}
|
|
|
|
static ScriptExec *
|
|
-script_exec_new (const char *uri)
|
|
+script_exec_new (const char *uri,
|
|
+ GError **error)
|
|
{
|
|
ScriptExec *exec;
|
|
g_autoptr(GFile) file = NULL;
|
|
@@ -705,7 +706,11 @@ script_exec_new (const char *uri)
|
|
|
|
exec->infile = g_file_get_path (file);
|
|
if (!exec->infile)
|
|
- goto bail;
|
|
+ {
|
|
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND,
|
|
+ "Could not get path for URI '%s'", uri);
|
|
+ goto bail;
|
|
+ }
|
|
|
|
#ifdef HAVE_BWRAP
|
|
if (exec->sandbox)
|
|
@@ -719,7 +724,11 @@ script_exec_new (const char *uri)
|
|
tmpl = g_strdup ("/tmp/gnome-desktop-thumbnailer-XXXXXX");
|
|
exec->outdir = g_mkdtemp (tmpl);
|
|
if (!exec->outdir)
|
|
- goto bail;
|
|
+ {
|
|
+ g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
|
+ "Could not create temporary sandbox directory");
|
|
+ goto bail;
|
|
+ }
|
|
exec->outfile = g_build_filename (exec->outdir, "gnome-desktop-thumbnailer.png", NULL);
|
|
|
|
ext = get_extension (exec->infile);
|
|
@@ -732,7 +741,7 @@ script_exec_new (const char *uri)
|
|
int fd;
|
|
g_autofree char *tmpname = NULL;
|
|
|
|
- fd = g_file_open_tmp (".gnome_desktop_thumbnail.XXXXXX", &tmpname, NULL);
|
|
+ fd = g_file_open_tmp (".gnome_desktop_thumbnail.XXXXXX", &tmpname, error);
|
|
if (fd == -1)
|
|
goto bail;
|
|
close (fd);
|
|
@@ -759,7 +768,7 @@ gnome_desktop_thumbnail_script_exec (const char *cmd,
|
|
GBytes *image = NULL;
|
|
ScriptExec *exec;
|
|
|
|
- exec = script_exec_new (uri);
|
|
+ exec = script_exec_new (uri, error);
|
|
if (!exec)
|
|
goto out;
|
|
expanded_script = expand_thumbnailing_cmd (cmd, exec, size, error);
|
|
--
|
|
2.13.4
|
|
|
|
|
|
From f96041679f46ece036d742bde7d78afc67d73519 Mon Sep 17 00:00:00 2001
|
|
From: Bastien Nocera <hadess@hadess.net>
|
|
Date: Tue, 8 Aug 2017 19:20:31 +0200
|
|
Subject: [PATCH 3/3] thumbnail: And print those errors in the debug
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=785963
|
|
---
|
|
libgnome-desktop/gnome-desktop-thumbnail.c | 9 ++++++++-
|
|
1 file changed, 8 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/libgnome-desktop/gnome-desktop-thumbnail.c b/libgnome-desktop/gnome-desktop-thumbnail.c
|
|
index 73751f69..866fc7d2 100644
|
|
--- a/libgnome-desktop/gnome-desktop-thumbnail.c
|
|
+++ b/libgnome-desktop/gnome-desktop-thumbnail.c
|
|
@@ -1066,13 +1066,20 @@ gnome_desktop_thumbnail_factory_generate_thumbnail (GnomeDesktopThumbnailFactory
|
|
if (script)
|
|
{
|
|
GBytes *data;
|
|
+ GError *error = NULL;
|
|
|
|
- data = gnome_desktop_thumbnail_script_exec (script, size, uri, NULL);
|
|
+ data = gnome_desktop_thumbnail_script_exec (script, size, uri, &error);
|
|
if (data)
|
|
{
|
|
pixbuf = pixbuf_new_from_bytes (data, NULL);
|
|
g_bytes_unref (data);
|
|
}
|
|
+ else
|
|
+ {
|
|
+ g_debug ("Thumbnail script ('%s') failed for '%s': %s",
|
|
+ script, uri, error ? error->message : "no details");
|
|
+ g_clear_error (&error);
|
|
+ }
|
|
}
|
|
|
|
g_free (script);
|
|
--
|
|
2.13.4
|
|
|