[tracker] tracker-extract: Fix error handling in tracker-extract-persistance



commit 2e35ca2b6ba2c41fa5bdcee109e3bb89da50b6b5
Author: Sam Thursfield <sam afuera me uk>
Date:   Thu Apr 7 12:01:38 2016 +0100

    tracker-extract: Fix error handling in tracker-extract-persistance
    
    A couple of GCC warnings highlighted the fact that in case of error,
    this code would pass uninitialised string pointers to g_critical().

 src/tracker-extract/tracker-extract-persistence.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-persistence.c 
b/src/tracker-extract/tracker-extract-persistence.c
index ee9ebf1..1dc5427 100644
--- a/src/tracker-extract/tracker-extract-persistence.c
+++ b/src/tracker-extract/tracker-extract-persistence.c
@@ -99,6 +99,7 @@ persistence_symlink_get_file (GFileInfo *info)
        GFile *file = NULL;
        guint n_retries;
 
+       symlink_name = g_file_info_get_name (info);
        symlink_target = g_file_info_get_symlink_target (info);
 
        if (!g_path_is_absolute (symlink_target)) {
@@ -107,7 +108,6 @@ persistence_symlink_get_file (GFileInfo *info)
                return NULL;
        }
 
-       symlink_name = g_file_info_get_name (info);
        md5 = g_compute_checksum_for_string (G_CHECKSUM_MD5, symlink_target, -1);
        items = g_strsplit (symlink_name, "-", 2);
        n_retries = g_strtod (items[0], NULL);
@@ -199,14 +199,13 @@ persistence_retrieve_files (TrackerExtractPersistence *persistence,
 
        while ((info = g_file_enumerator_next_file (enumerator, NULL, NULL)) != NULL) {
                GFile *file, *symlink_file;
-               gchar *symlink_name;
                guint n_retries;
 
                symlink_file = g_file_enumerator_get_child (enumerator, info);
                file = persistence_symlink_get_file (info);
 
                if (!file) {
-                       g_critical ("Symlink has bad format: %s\n", symlink_name);
+                       /* If we got here, persistence_symlink_get_file() already emitted a g_critical */
                        g_object_unref (symlink_file);
                        g_object_unref (info);
                        continue;


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