LINUX.ORG.RU

bluez и blueman не работают: *** glibc detected *** bluetoothd: free(): invalid next size (fast)

 , , детектед,


0

1

Обнаружилась причина проблем с bluetooth-клавиатурой: при попытке подключения спаренного hid-устройства bluez сыпется с зависанием:

bluetoothd[2223]: input/server.c:connect_event_cb() Incoming connection from 0C:FC:83:81:49:2A on PSM 17
bluetoothd[2223]: input/server.c:connect_event_cb() Incoming connection from 0C:FC:83:81:49:2A on PSM 19
*** glibc detected *** bluetoothd: free(): invalid next size (fast): 0x41dd0b98 ***
*** glibc detected *** bluetoothd: malloc(): memory corruption: 0x41dd0bb8 ***

Подключение в данном случае вызывалось со стороны клавиатуры. blueman после доустановки значков и gconf стал открывать почти все диалоговые окна (до этого работало только about), однако при попытке сопряжения или подключения bt получаю следующее:

row_update_event (/usr/lib/python2.7/site-packages/blueman/gui/manager/ManagerDeviceList.py:286)
row update event Trusted 0 
_________
row_update_event (/usr/lib/python2.7/site-packages/blueman/gui/manager/ManagerDeviceList.py:286)
row update event Paired 0 
_________
monitor_power_levels (/usr/lib/python2.7/site-packages/blueman/gui/DeviceList.py:214)
starting monitor 
*** glibc detected *** /usr/bin/python2.7: free(): invalid next size (fast): 0x014baf78 ***
_________
child_closed (/usr/lib/python2.7/site-packages/blueman/Functions.py:140)
/usr/bin/blueman-manager closed 
Через gnome-bluetooth сопряжение создаётся, после чего происходит вышеописанный краш bluetoothd. Один раз после сопряжения и перезагрузки клавиатура подключилась. Баг воспроизводится в gentoo и предположительно в lubuntu (там я логи не снимал, но поведение было таким же) и linaro (http://pengpod.com/forum/viewtopic.php?t=646&p=1687 - похожий случай) Через hidd без сопряжения клавиатура работает, однако в этом случае каждый раз нужно нажимать connect. В android и на x86 (bluez постарее) клавиатура работает стабильно. В андройд помогает нажатие пары кнопок, а в linux надо полсистемы переворошить, чтобы всё работало.

★★★★★

Путём долгих трассировок обнаружил, что проблема в шифровании, оно не работает на arm. Для небезопвсного фикса можно закомментить тело if (req->subclass & 0x40) в input/device.c (bluez-4.101) После этого у меня клавиатура подключилась со 2 раза и переподключается автоматически по любой кнопке. Решение небезопасное т.е при желании можно будет перехватить все введённые пароли. Проблемы с blueman оно не решает, там были другие причины сбоя.

mittorn ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.