[tracker/wip/carlosg/coverity-fixes: 4/8] libtracker-data: Apply silent treatment to the correct error



commit c6499034a7122d1007a97005ce83448da701478b
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Mar 4 20:12:51 2020 +0100

    libtracker-data: Apply silent treatment to the correct error
    
    In the case of our custom INSERT/DELETE SILENT, we want to ignore
    errors resulting from the insertion/removal of those quads (i.e.
    parser errors are still fatal). This failed because 1) we'd return
    early anyway if apply_quad() errored out and 2) inner_error was
    left unset.
    
    Pass the inner error and handle 'silent' right after apply_quad(),
    as it's expected of it.
    
    Spotted as "Logically dead code" by coverity.
    
    CID: #1491439

 src/libtracker-data/tracker-sparql.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)
---
diff --git a/src/libtracker-data/tracker-sparql.c b/src/libtracker-data/tracker-sparql.c
index 71e0029b3..988e94930 100644
--- a/src/libtracker-data/tracker-sparql.c
+++ b/src/libtracker-data/tracker-sparql.c
@@ -6274,18 +6274,16 @@ translate_GraphNode (TrackerSparql  *sparql,
             sparql->current_state.type != TRACKER_SPARQL_TYPE_UPDATE))
                return TRUE;
 
-       if (!tracker_sparql_apply_quad (sparql, error))
-               return FALSE;
+       if (!tracker_sparql_apply_quad (sparql, &inner_error)) {
+               if (inner_error && !sparql->silent) {
+                       g_propagate_error (error, inner_error);
+                       return FALSE;
+               }
+       }
 
        tracker_token_unset (&sparql->current_state.object);
 
-       if (inner_error && !sparql->silent) {
-               g_propagate_error (error, inner_error);
-               return FALSE;
-       } else {
-               g_clear_error (&inner_error);
-               return TRUE;
-       }
+       return TRUE;
 }
 
 static gboolean


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