Crash bug in bluez-4.4

Fabien Chevalier <[email protected]> Mon, 08 Sep 2008 21:44:18 +0200
Newsgroups gmane.linux.bluez.devel
Message-ID <[email protected]>
Hi All,

Just found a funny bug, steps to reproduce below:

1) make sure you have no headset whatsoever configured in bluez (fresh
empty setup)

2) Configure your asoundrc with empty bluetooth parameters

pcm.bluetooth {
         type bluetooth
}

ctl.bluetooth {
         type bluetooth
}

3)Launch your favourite ALSA base player, configure "bluetooth" as
output device

4) Hit play.

5) *BANG*
bluetoothd[17227]: Parsing
/usr/local/stow/bluez-4.4/etc/bluetooth/audio.conf failed: No such file
or directory
bluetoothd[17227]: Unix socket created: 13
bluetoothd[17227]: Telephony plugin initialized
bluetoothd[17227]: HFP AG features: (none)
bluetoothd[17227]: Accepted new client connection on unix socket (fd=10)
bluetoothd[17227]: Audio API: received BT_GETCAPABILITIES_REQ
Erreur de segmentation
palomino:/usr/local/stow#


Path attached fixes the bug... by removing three lines of code that seem 
to me not only a premature, but also bogus optimization :-(, that 
prevent us to trying to return the first element of an empty gslist.

However i'm not that familiar with that manager stuff and might be 
wrong, so please double check that ;-)

Cheers,

Fabien

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel
audio-plugin-crashbug-fix.diff (text/plain, 316 B)
--- manager.c.orig	2008-09-08 21:22:06.000000000 +0200
+++ manager.c	2008-09-08 21:22:11.000000000 +0200
@@ -999,9 +999,6 @@
 {
 	GSList *l;
 
-	if (!bacmp(bda, BDADDR_ANY) && !interface && !connected)
-		return devices->data;
-
 	for (l = devices; l != NULL; l = l->next) {
 		struct audio_device *dev = l->data;