[gnome-desktop] thumbnail: Report errors when script_exec_new() fails



commit 99df9a83a36882d8a666176d9452283ae065d014
Author: Bastien Nocera <hadess hadess net>
Date:   Tue Aug 8 19:14:09 2017 +0200

    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 files changed, 14 insertions(+), 5 deletions(-)
---
diff --git a/libgnome-desktop/gnome-desktop-thumbnail-script.c 
b/libgnome-desktop/gnome-desktop-thumbnail-script.c
index d9437d4..1012efa 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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]