- Fix possible crasher on resume from suspend
This commit is contained in:
parent
0c6e709242
commit
8c8ad05dda
57
bluez-bluetoothd-crasher.patch
Normal file
57
bluez-bluetoothd-crasher.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
diff --git a/src/security.c b/src/security.c
|
||||||
|
index fd2535f..6a9a5c4 100644
|
||||||
|
--- a/src/security.c
|
||||||
|
+++ b/src/security.c
|
||||||
|
@@ -46,6 +46,7 @@
|
||||||
|
|
||||||
|
#include <dbus/dbus.h>
|
||||||
|
|
||||||
|
+#include "hcid.h"
|
||||||
|
#include "logging.h"
|
||||||
|
#include "textfile.h"
|
||||||
|
|
||||||
|
@@ -789,6 +790,27 @@ static inline void conn_request(int dev, bdaddr_t *sba, void *ptr)
|
||||||
|
write_remote_class(sba, &evt->bdaddr, class);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static void delete_channel(GIOChannel *chan)
|
||||||
|
+{
|
||||||
|
+ gint i, found;
|
||||||
|
+
|
||||||
|
+ /* Look for the GIOChannel in the table */
|
||||||
|
+ found = -1;
|
||||||
|
+ for (i = 0; i < HCI_MAX_DEV; i++) {
|
||||||
|
+ if (io_data[i].channel == chan) {
|
||||||
|
+ found = i;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (found == -1) {
|
||||||
|
+ g_warning("IO channel not found in the io_data table");
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ stop_security_manager(i);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static gboolean io_security_event(GIOChannel *chan, GIOCondition cond, gpointer data)
|
||||||
|
{
|
||||||
|
unsigned char buf[HCI_MAX_EVENT_SIZE], *ptr = buf;
|
||||||
|
@@ -799,14 +821,14 @@ static gboolean io_security_event(GIOChannel *chan, GIOCondition cond, gpointer
|
||||||
|
GIOError err;
|
||||||
|
|
||||||
|
if (cond & (G_IO_NVAL | G_IO_HUP | G_IO_ERR)) {
|
||||||
|
- g_io_channel_unref(chan);
|
||||||
|
+ delete_channel(chan);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((err = g_io_channel_read(chan, (gchar *) buf, sizeof(buf), &len))) {
|
||||||
|
if (err == G_IO_ERROR_AGAIN)
|
||||||
|
return TRUE;
|
||||||
|
- g_io_channel_unref(chan);
|
||||||
|
+ delete_channel(chan);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
@ -1,13 +1,14 @@
|
|||||||
Summary: Bluetooth utilities
|
Summary: Bluetooth utilities
|
||||||
Name: bluez
|
Name: bluez
|
||||||
Version: 4.6
|
Version: 4.6
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: Applications/System
|
Group: Applications/System
|
||||||
Source: http://www.kernel.org/pub/linux/bluetooth/%{name}-%{version}.tar.gz
|
Source: http://www.kernel.org/pub/linux/bluetooth/%{name}-%{version}.tar.gz
|
||||||
Source1: bluetooth.init
|
Source1: bluetooth.init
|
||||||
Source2: bluetooth.conf
|
Source2: bluetooth.conf
|
||||||
Patch1: bluez-utils-oui-usage.patch
|
Patch1: bluez-utils-oui-usage.patch
|
||||||
|
Patch2: bluez-bluetoothd-crasher.patch
|
||||||
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
URL: http://www.bluez.org/
|
URL: http://www.bluez.org/
|
||||||
@ -96,6 +97,7 @@ use in Bluetooth applications.
|
|||||||
|
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p0 -b .oui
|
%patch1 -p0 -b .oui
|
||||||
|
%patch2 -p0 -b .security
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure --enable-cups --enable-hid2hci --enable-dfutool --enable-tools --enable-bccmd --enable-gstreamer --enable-hidd --enable-pand --enable-dund
|
%configure --enable-cups --enable-hid2hci --enable-dfutool --enable-tools --enable-bccmd --enable-gstreamer --enable-hidd --enable-pand --enable-dund
|
||||||
@ -181,6 +183,9 @@ fi
|
|||||||
%{_libdir}/alsa-lib/*.so
|
%{_libdir}/alsa-lib/*.so
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 24 2008 - Bastien Nocera <bnocera@redhat.com> - 4.6-2
|
||||||
|
- Fix possible crasher on resume from suspend
|
||||||
|
|
||||||
* Sun Sep 14 2008 - David Woodhouse <David.Woodhouse@intel.com> - 4.6-1
|
* Sun Sep 14 2008 - David Woodhouse <David.Woodhouse@intel.com> - 4.6-1
|
||||||
- Update to 4.6
|
- Update to 4.6
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user