[tracker/wip/carlosg/coverity-fixes: 6/10] libtracker-data: Apply silent treatment to the correct error
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/wip/carlosg/coverity-fixes: 6/10] libtracker-data: Apply silent treatment to the correct error
- Date: Wed, 4 Mar 2020 22:21:29 +0000 (UTC)
commit e0143fabdb01c1b9101bd67a28e01188dd19aaf6
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]