diff --git a/bluez-bluetoothd-crasher.patch b/bluez-bluetoothd-crasher.patch new file mode 100644 index 0000000..8d4b2a4 --- /dev/null +++ b/bluez-bluetoothd-crasher.patch @@ -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 + ++#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; + } + diff --git a/bluez.spec b/bluez.spec index aaaaba8..b598153 100644 --- a/bluez.spec +++ b/bluez.spec @@ -1,13 +1,14 @@ Summary: Bluetooth utilities Name: bluez Version: 4.6 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv2+ Group: Applications/System Source: http://www.kernel.org/pub/linux/bluetooth/%{name}-%{version}.tar.gz Source1: bluetooth.init Source2: bluetooth.conf Patch1: bluez-utils-oui-usage.patch +Patch2: bluez-bluetoothd-crasher.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root URL: http://www.bluez.org/ @@ -96,6 +97,7 @@ use in Bluetooth applications. %setup -q %patch1 -p0 -b .oui +%patch2 -p0 -b .security %build %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 %changelog +* Wed Sep 24 2008 - Bastien Nocera - 4.6-2 +- Fix possible crasher on resume from suspend + * Sun Sep 14 2008 - David Woodhouse - 4.6-1 - Update to 4.6