[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