Commit: caff2b48ca54bbc57b5da3f63317767489aa5b48
Parent: f12d3386fcb1ecb96c3e0bbc236db5b206e58b16
Author: Simon Mikuda <simon.mikuda@streamunlimited.com>
Committer: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Date: 2019-11-13 13:45:19
Tree: 591ff9481147ce849f93ccaa3ae815f2ded96c19

core/advertising: Fix crash when unregistering advertisement too fast When advertisement is unregistered during MGMT_OP_ADD_ADVERTISING it will crash in add_adv_callback because struct btd_adv_client no longer exist. This is seen also in debug log from bluetoothd: bluetoothd[29698]: src/advertising.c:register_advertisement() RegisterAdvertisement bluetoothd[29698]: src/advertising.c:client_create() Adding proxy for /org/bluez/example/advertisement0 bluetoothd[29698]: src/advertising.c:register_advertisement() Registered advertisement at path /org/bluez/example/advertisement0 bluetoothd[29698]: src/advertising.c:parse_service_uuids() Adding ServiceUUID: 180D bluetoothd[29698]: src/advertising.c:parse_service_uuids() Adding ServiceUUID: 180F bluetoothd[29698]: src/advertising.c:parse_manufacturer_data() Adding ManufacturerData for ffff bluetoothd[29698]: src/advertising.c:parse_service_data() Adding ServiceData for 9999 bluetoothd[29698]: src/advertising.c:parse_data() Adding Data for type 0x26 len 3 bluetoothd[29698]: src/advertising.c:refresh_adv() Refreshing advertisement: /org/bluez/example/advertisement0 bluetoothd[29698]: src/advertising.c:unregister_advertisement() UnregisterAdvertisement bluetoothd[29698]: src/advertising.c:add_adv_callback() Advertisement registered: � Segmentation fault (core dumped)

Diffstat

M src/advertising.c | 34 ++++++++++++++++++++++++++- - - - - - - -

1 files changed, 26 insertions(+), 8 deletions(-)

View Full Diff | Patch