Backport fix for TrackerDirectConnection crashes
... from sqlite3DbMallocRawNN. https://bugzilla.redhat.com/show_bug.cgi?id=1404285
This commit is contained in:
parent
3be618ecf0
commit
d8220634c9
@ -0,0 +1,61 @@
|
|||||||
|
From 79f3037391d4f00216af441f658d50f3753cc021 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Carlos Garnacho <carlosg@gnome.org>
|
||||||
|
Date: Fri, 23 Jun 2017 18:48:06 +0200
|
||||||
|
Subject: [PATCH] libtracker-data: Protect sqlite3_bind*() with interface lock
|
||||||
|
|
||||||
|
There may be multiple cursors/db_statements from the same db interface
|
||||||
|
being accessed from multiple threads. This must be under the
|
||||||
|
TrackerDBInterface lock in order to prevent threading issues.
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1404285
|
||||||
|
---
|
||||||
|
src/libtracker-data/tracker-db-interface-sqlite.c | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c b/src/libtracker-data/tracker-db-interface-sqlite.c
|
||||||
|
index 66e648743c1f..4b0994da008c 100644
|
||||||
|
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
|
||||||
|
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
|
||||||
|
@@ -2589,7 +2589,9 @@ tracker_db_statement_bind_double (TrackerDBStatement *stmt,
|
||||||
|
|
||||||
|
g_assert (!stmt->stmt_is_used);
|
||||||
|
|
||||||
|
+ tracker_db_interface_lock (stmt->db_interface);
|
||||||
|
sqlite3_bind_double (stmt->stmt, index + 1, value);
|
||||||
|
+ tracker_db_interface_unlock (stmt->db_interface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -2601,7 +2603,9 @@ tracker_db_statement_bind_int (TrackerDBStatement *stmt,
|
||||||
|
|
||||||
|
g_assert (!stmt->stmt_is_used);
|
||||||
|
|
||||||
|
+ tracker_db_interface_lock (stmt->db_interface);
|
||||||
|
sqlite3_bind_int64 (stmt->stmt, index + 1, value);
|
||||||
|
+ tracker_db_interface_unlock (stmt->db_interface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -2612,7 +2616,9 @@ tracker_db_statement_bind_null (TrackerDBStatement *stmt,
|
||||||
|
|
||||||
|
g_assert (!stmt->stmt_is_used);
|
||||||
|
|
||||||
|
+ tracker_db_interface_lock (stmt->db_interface);
|
||||||
|
sqlite3_bind_null (stmt->stmt, index + 1);
|
||||||
|
+ tracker_db_interface_unlock (stmt->db_interface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
@@ -2624,7 +2630,9 @@ tracker_db_statement_bind_text (TrackerDBStatement *stmt,
|
||||||
|
|
||||||
|
g_assert (!stmt->stmt_is_used);
|
||||||
|
|
||||||
|
+ tracker_db_interface_lock (stmt->db_interface);
|
||||||
|
sqlite3_bind_text (stmt->stmt, index + 1, value, -1, SQLITE_TRANSIENT);
|
||||||
|
+ tracker_db_interface_unlock (stmt->db_interface);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
--
|
||||||
|
2.9.4
|
||||||
|
|
10
tracker.spec
10
tracker.spec
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
Name: tracker
|
Name: tracker
|
||||||
Version: 1.13.0
|
Version: 1.13.0
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: Desktop-neutral search tool and indexer
|
Summary: Desktop-neutral search tool and indexer
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -25,6 +25,9 @@ Source0: https://download.gnome.org/sources/%{name}/1.13/%{name}-%{versio
|
|||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=771601
|
# https://bugzilla.redhat.com/show_bug.cgi?id=771601
|
||||||
Patch0: 0001-Only-autostart-in-GNOME-771601.patch
|
Patch0: 0001-Only-autostart-in-GNOME-771601.patch
|
||||||
|
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1404285
|
||||||
|
Patch1: 0001-libtracker-data-Protect-sqlite3_bind-with-interface-.patch
|
||||||
|
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
BuildRequires: giflib-devel
|
BuildRequires: giflib-devel
|
||||||
BuildRequires: graphviz
|
BuildRequires: graphviz
|
||||||
@ -137,6 +140,7 @@ This package contains the documentation for tracker
|
|||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
%patch0 -p1 -b .autostart-gnome
|
%patch0 -p1 -b .autostart-gnome
|
||||||
|
%patch1 -p1 -b .sqlite3_bind
|
||||||
|
|
||||||
%if 0%{?rhel}
|
%if 0%{?rhel}
|
||||||
# Fix the build with sqlite 3.7 that doesn't support SQLITE_DETERMINISTIC
|
# Fix the build with sqlite 3.7 that doesn't support SQLITE_DETERMINISTIC
|
||||||
@ -282,6 +286,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Jul 03 2017 Debarshi Ray <rishi@fedoraproject.org> - 1.13.0-2
|
||||||
|
- Backport fix for TrackerDirectConnection crashes from
|
||||||
|
sqlite3DbMallocRawNN
|
||||||
|
|
||||||
* Mon May 29 2017 David King <amigadave@amigadave.com> - 1.13.0-1
|
* Mon May 29 2017 David King <amigadave@amigadave.com> - 1.13.0-1
|
||||||
- Update to 1.13.0
|
- Update to 1.13.0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user