summaryrefslogtreecommitdiff
path: root/extra/nepomuk-core/regression-crash.patch
blob: 2559c99c43bcb34cc562c8d164db5bdd849dc3e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
From: David Faure <faure@kde.org>
Date: Tue, 02 Oct 2012 18:27:03 +0000
Subject: Fix crash when watchUserLimitReached() leads to deleting the KInotify instance
X-Git-Url: http://quickgit.kde.org/?p=nepomuk-core.git&amp;a=commitdiff&amp;h=804e54f83ade8a377d392d350981ead07f60a9d3
---
Fix crash when watchUserLimitReached() leads to deleting the KInotify instance

... which emitted the signal. So don't use a direct delete.

BUG: 307388
FIXED-IN: 4.9.3
---


--- a/services/filewatch/nepomukfilewatch.cpp
+++ b/services/filewatch/nepomukfilewatch.cpp
@@ -323,7 +323,8 @@
 void Nepomuk2::FileWatch::slotInotifyWatchUserLimitReached()
 {
     // we do it the brutal way for now hoping with new kernels and defaults this will never happen
-    delete m_dirWatch;
+    // Delete the KInotify and switch to KDirNotify dbus signals
+    m_dirWatch->deleteLater();
     m_dirWatch = 0;
     connectToKDirWatch();
 }

From: Dan Vrátil <dvratil@redhat.com>
Date: Wed, 03 Oct 2012 11:27:22 +0000
Subject: Add null-crash guards for m_dirWatch to FileWatch
X-Git-Url: http://quickgit.kde.org/?p=nepomuk-core.git&amp;a=commitdiff&amp;h=32b44881dda4f243932c59c11bf39c91f30c224b
---
Add null-crash guards for m_dirWatch to FileWatch

BUG: 307388
---


--- a/services/filewatch/nepomukfilewatch.cpp
+++ b/services/filewatch/nepomukfilewatch.cpp
@@ -114,6 +114,7 @@
 
 Nepomuk2::FileWatch::FileWatch( QObject* parent, const QList<QVariant>& )
     : Service( parent )
+    , m_dirWatch( 0 )
 {
     // Create the configuration instance singleton (for thread-safety)
     // ==============================================================
@@ -324,8 +325,10 @@
 {
     // we do it the brutal way for now hoping with new kernels and defaults this will never happen
     // Delete the KInotify and switch to KDirNotify dbus signals
-    m_dirWatch->deleteLater();
-    m_dirWatch = 0;
+    if( m_dirWatch ) {
+        m_dirWatch->deleteLater();
+        m_dirWatch = 0;
+    }
     connectToKDirWatch();
 }
 #endif
@@ -413,7 +416,9 @@
 void Nepomuk2::FileWatch::slotDeviceTeardownRequested(const Nepomuk2::RemovableMediaCache::Entry* entry )
 {
 #ifdef BUILD_KINOTIFY
-    m_dirWatch->removeWatch( entry->mountPath() );
+    if( m_dirWatch ) {
+        m_dirWatch->removeWatch( entry->mountPath() );
+    }
 #endif
 }