[tracker/wip/carlosg/coverity-warnings: 18/27] libtracker-data: Plug leak




commit 3294c0c3df5d92779ee61ab89247377ab2794d96
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sat Mar 20 13:09:11 2021 +0100

    libtracker-data: Plug leak
    
    The "expr" variable was being leaked in some error paths.
    
    CID: #1501122

 src/libtracker-data/tracker-data-manager.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)
---
diff --git a/src/libtracker-data/tracker-data-manager.c b/src/libtracker-data/tracker-data-manager.c
index 8094da2ae..a3ba840a4 100644
--- a/src/libtracker-data/tracker-data-manager.c
+++ b/src/libtracker-data/tracker-data-manager.c
@@ -406,10 +406,8 @@ set_index_for_multi_value_property (TrackerDBInterface  *iface,
                                                    service_name,
                                                    field_name);
 
-               if (internal_error) {
-                       g_propagate_error (error, internal_error);
-                       return;
-               }
+               if (internal_error)
+                       goto out;
 
                TRACKER_NOTE (ONTOLOGY_CHANGES,
                              g_message ("Creating index (multi-value property): "
@@ -425,10 +423,8 @@ set_index_for_multi_value_property (TrackerDBInterface  *iface,
                                                    field_name,
                                                    expr);
 
-               if (internal_error) {
-                       g_propagate_error (error, internal_error);
-                       return;
-               }
+               if (internal_error)
+                       goto out;
        } else {
                TRACKER_NOTE (ONTOLOGY_CHANGES,
                              g_message ("Creating index (multi-value property): "
@@ -444,9 +440,13 @@ set_index_for_multi_value_property (TrackerDBInterface  *iface,
                                                    field_name,
                                                    expr);
 
-               if (internal_error) {
-                       g_propagate_error (error, internal_error);
-               }
+               if (internal_error)
+                       goto out;
+       }
+
+out:
+       if (internal_error) {
+               g_propagate_error (error, internal_error);
        }
 
        g_free (expr);


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