Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bluetooth_legacy: Handle network removal in the middle of enabling
If a Bluetooth connect is in progress when the network gets removed the following may happen: connmand[5092]: Aborting (signal 11) [src/connmand] connmand[5092]: ++++++++ backtrace ++++++++ connmand[5092]: #0 0x7f4066b8a260 in /lib/x86_64-linux-gnu/libc.so.6 connmand[5092]: #1 0x438950 in connman_device_get_ident() at src/device.c:555 connmand[5092]: #2 0x447301 in connman_service_lookup_from_network() at src/service.c:6421 connmand[5092]: #3 0x43aeb8 in set_connect_error() at src/network.c:1296 connmand[5092]: #4 0x43b97d in connman_network_set_connected() at src/network.c:1396 connmand[5092]: #5 0x4245f5 in connect_reply() at plugins/bluetooth_legacy.c:150 connmand[5092]: #6 0x7f40679fc512 in /lib/x86_64-linux-gnu/libdbus-1.so.3 connmand[5092]: #7 0x7f40679ff741 in /lib/x86_64-linux-gnu/libdbus-1.so.3 connmand[5092]: #8 0x47bbc8 in message_dispatch() at gdbus/mainloop.c:76 (discriminator 1) connmand[5092]: #9 0x7f4067c7ea03 in /lib/x86_64-linux-gnu/libglib-2.0.so.0 connmand[5092]: #10 0x7f4067c7dea6 in /lib/x86_64-linux-gnu/libglib-2.0.so.0 connmand[5092]: #11 0x7f4067c7e1f8 in /lib/x86_64-linux-gnu/libglib-2.0.so.0 connmand[5092]: #12 0x7f4067c7e5fa in /lib/x86_64-linux-gnu/libglib-2.0.so.0 connmand[5092]: #13 0x40f7a7 in main() at src/main.c:694 connmand[5092]: #14 0x7f4066b76995 in /lib/x86_64-linux-gnu/libc.so.6 Fix this by supplying the D-Bus path to the callback and looking up the network instead of providing the whole structure which can have been freed at the time of the callback.
- Loading branch information