[tracker: 1/2] tracker-miner: Fix cancellation of g_file_enumerator_next_files_async



commit 465b8031d0a73ac775952c07d0374206746a8a46
Author: Andrea Azzarone <andrea azzarone canonical com>
Date:   Mon Apr 1 16:52:15 2019 +0100

    tracker-miner: Fix cancellation of g_file_enumerator_next_files_async
    
    The async op is not owner of the user data, so it may be actually gone in the
    GAsyncReadyCallback. Ensure we only use it on success or on other errors than
    cancelled.
    
    Closes: https://gitlab.gnome.org/GNOME/tracker/issues/86

 src/libtracker-miner/tracker-crawler.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-crawler.c b/src/libtracker-miner/tracker-crawler.c
index 1b8319d97..bfad387c6 100644
--- a/src/libtracker-miner/tracker-crawler.c
+++ b/src/libtracker-miner/tracker-crawler.c
@@ -903,7 +903,7 @@ enumerate_next_cb (GObject      *object,
 {
        DataProviderData *dpd;
        GList *info;
-       GError *error = NULL;
+       g_autoptr(GError) error = NULL;
 
        info = g_file_enumerator_next_files_finish (G_FILE_ENUMERATOR (object), result, &error);
        dpd = user_data;
@@ -922,9 +922,9 @@ enumerate_next_cb (GObject      *object,
                                g_warning ("Could not enumerate next item in container / directory '%s', %s",
                                           uri, error ? error->message : "no error given");
                                g_free (uri);
+                       } else {
+                               return;
                        }
-
-                       g_clear_error (&error);
                } else {
                        /* Done enumerating, start processing what we got ... */
                        data_provider_data_add (dpd);


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