[bluedevil] kde daemon crash (kde#284052)

Rex Dieter rdieter at fedoraproject.org
Thu Apr 26 03:29:46 UTC 2012


commit aacfb741b2f6238ab13b992bd1ea0f7f5239506a
Author: Rex Dieter <rdieter at fedoraproject.org>
Date:   Wed Apr 25 22:32:02 2012 -0500

    kde daemon crash (kde#284052)

 bluedevil-1.3-rc1-kded_crash.patch |   53 ++++++++++++++++++++++++++++++++++++
 bluedevil.spec                     |   15 +++++++++-
 2 files changed, 66 insertions(+), 2 deletions(-)
---
diff --git a/bluedevil-1.3-rc1-kded_crash.patch b/bluedevil-1.3-rc1-kded_crash.patch
new file mode 100644
index 0000000..28428ab
--- /dev/null
+++ b/bluedevil-1.3-rc1-kded_crash.patch
@@ -0,0 +1,53 @@
+commit 744ff9bb65162db0ed3f07d5dc0166a20c46f136
+Author: Alex Fiestas <afiestas at kde.org>
+Date:   Thu Apr 26 04:46:23 2012 +0200
+
+    Set a new Object as parent of BlueZAgent
+    
+    You can't register a child of a parent exposed with ExportChildObjects, if
+    you do so the app may crash.
+    
+    for not making this patch too big I'm using the parent() reference from
+    the BlueAgent object itself to delete the parent and this will delete
+    the agent.  I will improve it in BlueDevil 2.0
+    
+    Versions minor to 1.3 are not affected by this bug since they use qApp
+    as a parent instead of BlueDevilDAemon.
+    
+    BUG: 284052
+
+diff --git a/src/daemon/kded/BlueDevilDaemon.cpp b/src/daemon/kded/BlueDevilDaemon.cpp
+index ac397f5..0cfcc45 100644
+--- a/src/daemon/kded/BlueDevilDaemon.cpp
++++ b/src/daemon/kded/BlueDevilDaemon.cpp
+@@ -179,7 +179,7 @@ void BlueDevilDaemon::onlineMode()
+         return;
+     }
+ 
+-    d->m_bluezAgent = new BluezAgent(this);
++    d->m_bluezAgent = new BluezAgent(new QObject());
+     connect(d->m_bluezAgent, SIGNAL(agentReleased()), this, SLOT(agentReleased()));
+ 
+     d->m_adapter = Manager::self()->defaultAdapter();
+@@ -224,7 +224,7 @@ void BlueDevilDaemon::offlineMode()
+     d->m_adapter = 0;
+ 
+     if (d->m_bluezAgent) {
+-        delete d->m_bluezAgent;
++        delete d->m_bluezAgent->parent(); // we meed to delete the parent for not leaking it
+         d->m_bluezAgent = 0;
+     }
+ 
+diff --git a/src/daemon/kded/bluezagent.cpp b/src/daemon/kded/bluezagent.cpp
+index d8e2cda..a948a9f 100644
+--- a/src/daemon/kded/bluezagent.cpp
++++ b/src/daemon/kded/bluezagent.cpp
+@@ -54,7 +54,7 @@ void BluezAgent::unregister()
+         defaultAdapter->unregisterAgent(AGENT_PATH);
+     }
+     QDBusConnection::systemBus().unregisterObject(AGENT_PATH);
+-    deleteLater();
++    parent()->deleteLater();
+ }
+ 
+ void BluezAgent::Release()
diff --git a/bluedevil.spec b/bluedevil.spec
index 254f42b..14820dd 100644
--- a/bluedevil.spec
+++ b/bluedevil.spec
@@ -1,6 +1,6 @@
 Name:           bluedevil
 Version:        1.3
-Release:        0.2.rc1%{?dist}
+Release:        0.3.rc1%{?dist}
 Summary:        Bluetooth stack for KDE
 
 Group:          Applications/Communications
@@ -9,6 +9,10 @@ URL:            http://www.afiestas.org/
 Source0:        http://www.afiestas.org/files/bluedevil-%{version}-rc1.tar.bz2
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
+## upstream patches
+# https://projects.kde.org/projects/extragear/base/bluedevil/repository/revisions/744ff9bb65162db0ed3f07d5dc0166a20c46f136
+Patch100: bluedevil-1.3-rc1-kded_crash.patch
+
 BuildRequires:  cmake
 BuildRequires:  desktop-file-utils
 BuildRequires:  gettext
@@ -38,14 +42,17 @@ BlueDevil is the bluetooth stack for KDE.
 %package        devel
 Summary:        Development files for %{name}
 Group:          Development/Libraries
-Requires:       %{name} = %{version}-%{release}
+Requires:       %{name}%{?_isa} = %{version}-%{release}
 
 %description    devel
 Development files for %{name}.
 
+
 %prep
 %setup -q -n %{name}-%{version}-rc1
 
+%patch100 -p1 -b .kded_crash
+
 
 %build
 mkdir -p %{_target_platform}
@@ -117,7 +124,11 @@ update-mime-database %{_kde4_datadir}/mime >& /dev/null
 %doc HACKING
 %{_includedir}/actionplugin.h
 
+
 %changelog
+* Wed Apr 25 2012 Rex Dieter <rdieter at fedoraproject.org> 1.3-0.3.rc1
+- kde daemon crash (kde#284052)
+
 * Thu Jan 12 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.3-0.2.rc1
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
 


More information about the scm-commits mailing list