summaryrefslogtreecommitdiff
path: root/extra/nepomuk-core/regression-crash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'extra/nepomuk-core/regression-crash.patch')
-rw-r--r--extra/nepomuk-core/regression-crash.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/extra/nepomuk-core/regression-crash.patch b/extra/nepomuk-core/regression-crash.patch
new file mode 100644
index 000000000..2559c99c4
--- /dev/null
+++ b/extra/nepomuk-core/regression-crash.patch
@@ -0,0 +1,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
+ }
+
+