Loading system/bta/gatt/bta_gattc_cache.cc +6 −5 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #define LOG_TAG "bt_bta_gattc" #include <base/bind.h> #include <base/strings/string_number_conversions.h> #include <base/strings/stringprintf.h> #include <bluetooth/log.h> Loading Loading @@ -342,9 +343,9 @@ descriptor_discovery_done: } /* Process the discovery result from sdp */ void bta_gattc_sdp_callback(const RawAddress& /* bd_addr */, tSDP_STATUS sdp_status, const void* user_data) { tBTA_GATTC_CB_DATA* cb_data = (tBTA_GATTC_CB_DATA*)user_data; void bta_gattc_sdp_callback(tBTA_GATTC_CB_DATA* cb_data, const RawAddress& /* bd_addr */, tSDP_STATUS sdp_status) { tBTA_GATTC_SERV* p_srvc_cb = bta_gattc_find_scb_by_cid(cb_data->sdp_conn_id); if (p_srvc_cb == nullptr) { Loading Loading @@ -440,8 +441,8 @@ static tGATT_STATUS bta_gattc_sdp_service_disc(uint16_t conn_id, }; if (!get_legacy_stack_sdp_api()->service.SDP_ServiceSearchAttributeRequest2( p_server_cb->server_bda, cb_data->p_sdp_db, &bta_gattc_sdp_callback, const_cast<const void*>(static_cast<void*>(cb_data)))) { p_server_cb->server_bda, cb_data->p_sdp_db, base::BindRepeating(bta_gattc_sdp_callback, cb_data))) { log::warn("Unable to start SDP service search attribute request peer:{}", p_server_cb->server_bda); osi_free(cb_data); Loading system/bta/hf_client/bta_hf_client_sdp.cc +5 −5 Original line number Diff line number Diff line Loading @@ -61,14 +61,14 @@ using namespace bluetooth; * Returns void * ******************************************************************************/ static void bta_hf_client_sdp_cback(const RawAddress& /* bd_addr */, tSDP_STATUS status, const void* data) { static void bta_hf_client_sdp_cback(tBTA_HF_CLIENT_CB* client_cb, const RawAddress& /* bd_addr */, tSDP_STATUS status) { uint16_t event; tBTA_HF_CLIENT_DISC_RESULT* p_buf = (tBTA_HF_CLIENT_DISC_RESULT*)osi_malloc( sizeof(tBTA_HF_CLIENT_DISC_RESULT)); log::verbose("bta_hf_client_sdp_cback status:0x{:x}", status); tBTA_HF_CLIENT_CB* client_cb = (tBTA_HF_CLIENT_CB*)data; /* set event according to int/acp */ if (client_cb->role == BTA_HF_CLIENT_ACP) Loading Loading @@ -359,8 +359,8 @@ void bta_hf_client_do_disc(tBTA_HF_CLIENT_CB* client_cb) { /*Service discovery not initiated */ db_inited = get_legacy_stack_sdp_api()->service.SDP_ServiceSearchAttributeRequest2( client_cb->peer_addr, client_cb->p_disc_db, bta_hf_client_sdp_cback, (void*)client_cb); client_cb->peer_addr, client_cb->p_disc_db, base::BindRepeating(&bta_hf_client_sdp_cback, client_cb)); } if (!db_inited) { Loading system/bta/jv/bta_jv_act.cc +9 −17 Original line number Diff line number Diff line Loading @@ -792,9 +792,9 @@ void bta_jv_free_scn(tBTA_JV_CONN_TYPE type /* One of BTA_JV_CONN_TYPE_ */, * Returns void * ******************************************************************************/ static void bta_jv_start_discovery_cback(const RawAddress& bd_addr, tSDP_RESULT result, const void* user_data) { static void bta_jv_start_discovery_cback(uint32_t rfcomm_slot_id, const RawAddress& bd_addr, tSDP_RESULT result) { if (!bta_jv_cb.sdp_cb.sdp_active) { log::warn( "Received unexpected service discovery callback bd_addr:{} result:{}", Loading @@ -809,7 +809,6 @@ static void bta_jv_start_discovery_cback(const RawAddress& bd_addr, } if (bta_jv_cb.p_dm_cback) { const uint32_t rfcomm_slot_id = *static_cast<const uint32_t*>(user_data); tBTA_JV bta_jv = { .disc_comp = { Loading Loading @@ -855,8 +854,6 @@ static void bta_jv_start_discovery_cback(const RawAddress& bd_addr, "result:{}", bd_addr, sdp_result_text(result)); } // User data memory is allocated in `bta_jv_start_discovery` osi_free(const_cast<void*>(user_data)); bta_jv_cb.sdp_cb = {}; } Loading Loading @@ -905,16 +902,10 @@ void bta_jv_start_discovery(const RawAddress& bd_addr, uint16_t num_uuid, .uuid = uuid_list[0], }; // NOTE: This gets freed on the callback or when discovery failed to start uint32_t* rfcomm_slot_id_copy = (uint32_t*)osi_malloc(sizeof(uint32_t)); *rfcomm_slot_id_copy = rfcomm_slot_id; // user_data memory is freed in `bta_jv_start_discovery_cback` callback if (!get_legacy_stack_sdp_api()->service.SDP_ServiceSearchAttributeRequest2( bd_addr, p_bta_jv_cfg->p_sdp_db, bta_jv_start_discovery_cback, (const void*)rfcomm_slot_id_copy)) { bd_addr, p_bta_jv_cfg->p_sdp_db, base::BindRepeating(&bta_jv_start_discovery_cback, rfcomm_slot_id))) { bta_jv_cb.sdp_cb = {}; osi_free(rfcomm_slot_id_copy); log::warn( "Unable to original service discovery bd_addr:{} num:uuid:{} " "rfcomm_slot_id:{}", Loading Loading @@ -2083,9 +2074,10 @@ static void bta_jv_reset_sniff_timer(tBTA_JV_PM_CB* p_cb) { namespace bluetooth::legacy::testing { void bta_jv_start_discovery_cback(const RawAddress& bd_addr, tSDP_RESULT result, const void* user_data) { ::bta_jv_start_discovery_cback(bd_addr, result, user_data); void bta_jv_start_discovery_cback(uint32_t rfcomm_slot_id, const RawAddress& bd_addr, tSDP_RESULT result) { ::bta_jv_start_discovery_cback(rfcomm_slot_id, bd_addr, result); } } // namespace bluetooth::legacy::testing system/bta/sdp/bta_sdp_act.cc +8 −13 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ * This file contains action functions for SDP search. ******************************************************************************/ #include <base/bind.h> #include <bluetooth/log.h> #include <frameworks/proto_logging/stats/enums/bluetooth/enums.pb.h> #include <hardware/bt_sdp.h> Loading Loading @@ -550,8 +551,8 @@ static void bta_create_raw_sdp_record(bluetooth_sdp_record* record, } /** Callback from btm after search is completed */ static void bta_sdp_search_cback(const RawAddress& /* bd_addr */, tSDP_RESULT result, const void* user_data) { static void bta_sdp_search_cback(Uuid uuid, const RawAddress& /* bd_addr */, tSDP_RESULT result) { tBTA_SDP_STATUS status = BTA_SDP_FAILURE; int count = 0; log::verbose("res: 0x{:x}", result); Loading @@ -560,8 +561,6 @@ static void bta_sdp_search_cback(const RawAddress& /* bd_addr */, if (bta_sdp_cb.p_dm_cback == NULL) return; Uuid& uuid = *(reinterpret_cast<Uuid*>(const_cast<void*>(user_data))); tBTA_SDP_SEARCH_COMP evt_data; memset(&evt_data, 0, sizeof(evt_data)); evt_data.remote_addr = bta_sdp_cb.remote_addr; Loading Loading @@ -636,8 +635,6 @@ static void bta_sdp_search_cback(const RawAddress& /* bd_addr */, bta_sdp_cb.p_dm_cback(BTA_SDP_SEARCH_COMP_EVT, &bta_sdp, (void*)&uuid); bluetooth::shim::CountCounterMetrics( android::bluetooth::CodePathCounterKeyEnum::SDP_SUCCESS, 1); osi_free(const_cast<void*>( user_data)); // We no longer need the user data to track the search } /******************************************************************************* Loading Loading @@ -699,11 +696,9 @@ void bta_sdp_search(const RawAddress bd_addr, const bluetooth::Uuid uuid) { log::warn("Unable to initialize SDP service search db peer:{}", bd_addr); } Uuid* bta_sdp_search_uuid = (Uuid*)osi_malloc(sizeof(Uuid)); *bta_sdp_search_uuid = uuid; if (!get_legacy_stack_sdp_api()->service.SDP_ServiceSearchAttributeRequest2( bd_addr, p_bta_sdp_cfg->p_sdp_db, bta_sdp_search_cback, (void*)bta_sdp_search_uuid)) { bd_addr, p_bta_sdp_cfg->p_sdp_db, base::BindRepeating(bta_sdp_search_cback, uuid))) { log::warn("Unable to start SDP service search attribute request peer:{}", bd_addr); bta_sdp_cb.sdp_active = false; Loading Loading @@ -763,9 +758,9 @@ void bta_create_dip_sdp_record(bluetooth_sdp_record* record, ::bta_create_dip_sdp_record(record, p_rec); } void bta_sdp_search_cback(const RawAddress& bd_addr, tSDP_RESULT result, const void* user_data) { ::bta_sdp_search_cback(bd_addr, result, user_data); void bta_sdp_search_cback(Uuid uuid, const RawAddress& bd_addr, tSDP_RESULT result) { ::bta_sdp_search_cback(uuid, bd_addr, result); } } // namespace testing Loading system/bta/test/bta_dip_test.cc +4 −7 Original line number Diff line number Diff line Loading @@ -107,8 +107,8 @@ namespace testing { void bta_create_dip_sdp_record(bluetooth_sdp_record* record, tSDP_DISC_REC* p_rec); void bta_sdp_search_cback(const RawAddress& bd_addr, tSDP_RESULT result, const void* user_data); void bta_sdp_search_cback(Uuid uuid, const RawAddress& bd_addr, tSDP_RESULT result); } // namespace testing } // namespace bluetooth Loading Loading @@ -208,9 +208,6 @@ TEST_F(BtaDipTest, test_invalid_size_checks) { TEST_F(BtaDipTest, test_bta_sdp_search_cback) { Uuid* userdata = (Uuid*)malloc(sizeof(Uuid)); memcpy(userdata, &UUID_DIP, sizeof(UUID_DIP)); bluetooth::testing::bta_sdp_search_cback(RawAddress::kEmpty, SDP_SUCCESS, userdata); bluetooth::testing::bta_sdp_search_cback(UUID_DIP, RawAddress::kEmpty, SDP_SUCCESS); } Loading
system/bta/gatt/bta_gattc_cache.cc +6 −5 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #define LOG_TAG "bt_bta_gattc" #include <base/bind.h> #include <base/strings/string_number_conversions.h> #include <base/strings/stringprintf.h> #include <bluetooth/log.h> Loading Loading @@ -342,9 +343,9 @@ descriptor_discovery_done: } /* Process the discovery result from sdp */ void bta_gattc_sdp_callback(const RawAddress& /* bd_addr */, tSDP_STATUS sdp_status, const void* user_data) { tBTA_GATTC_CB_DATA* cb_data = (tBTA_GATTC_CB_DATA*)user_data; void bta_gattc_sdp_callback(tBTA_GATTC_CB_DATA* cb_data, const RawAddress& /* bd_addr */, tSDP_STATUS sdp_status) { tBTA_GATTC_SERV* p_srvc_cb = bta_gattc_find_scb_by_cid(cb_data->sdp_conn_id); if (p_srvc_cb == nullptr) { Loading Loading @@ -440,8 +441,8 @@ static tGATT_STATUS bta_gattc_sdp_service_disc(uint16_t conn_id, }; if (!get_legacy_stack_sdp_api()->service.SDP_ServiceSearchAttributeRequest2( p_server_cb->server_bda, cb_data->p_sdp_db, &bta_gattc_sdp_callback, const_cast<const void*>(static_cast<void*>(cb_data)))) { p_server_cb->server_bda, cb_data->p_sdp_db, base::BindRepeating(bta_gattc_sdp_callback, cb_data))) { log::warn("Unable to start SDP service search attribute request peer:{}", p_server_cb->server_bda); osi_free(cb_data); Loading
system/bta/hf_client/bta_hf_client_sdp.cc +5 −5 Original line number Diff line number Diff line Loading @@ -61,14 +61,14 @@ using namespace bluetooth; * Returns void * ******************************************************************************/ static void bta_hf_client_sdp_cback(const RawAddress& /* bd_addr */, tSDP_STATUS status, const void* data) { static void bta_hf_client_sdp_cback(tBTA_HF_CLIENT_CB* client_cb, const RawAddress& /* bd_addr */, tSDP_STATUS status) { uint16_t event; tBTA_HF_CLIENT_DISC_RESULT* p_buf = (tBTA_HF_CLIENT_DISC_RESULT*)osi_malloc( sizeof(tBTA_HF_CLIENT_DISC_RESULT)); log::verbose("bta_hf_client_sdp_cback status:0x{:x}", status); tBTA_HF_CLIENT_CB* client_cb = (tBTA_HF_CLIENT_CB*)data; /* set event according to int/acp */ if (client_cb->role == BTA_HF_CLIENT_ACP) Loading Loading @@ -359,8 +359,8 @@ void bta_hf_client_do_disc(tBTA_HF_CLIENT_CB* client_cb) { /*Service discovery not initiated */ db_inited = get_legacy_stack_sdp_api()->service.SDP_ServiceSearchAttributeRequest2( client_cb->peer_addr, client_cb->p_disc_db, bta_hf_client_sdp_cback, (void*)client_cb); client_cb->peer_addr, client_cb->p_disc_db, base::BindRepeating(&bta_hf_client_sdp_cback, client_cb)); } if (!db_inited) { Loading
system/bta/jv/bta_jv_act.cc +9 −17 Original line number Diff line number Diff line Loading @@ -792,9 +792,9 @@ void bta_jv_free_scn(tBTA_JV_CONN_TYPE type /* One of BTA_JV_CONN_TYPE_ */, * Returns void * ******************************************************************************/ static void bta_jv_start_discovery_cback(const RawAddress& bd_addr, tSDP_RESULT result, const void* user_data) { static void bta_jv_start_discovery_cback(uint32_t rfcomm_slot_id, const RawAddress& bd_addr, tSDP_RESULT result) { if (!bta_jv_cb.sdp_cb.sdp_active) { log::warn( "Received unexpected service discovery callback bd_addr:{} result:{}", Loading @@ -809,7 +809,6 @@ static void bta_jv_start_discovery_cback(const RawAddress& bd_addr, } if (bta_jv_cb.p_dm_cback) { const uint32_t rfcomm_slot_id = *static_cast<const uint32_t*>(user_data); tBTA_JV bta_jv = { .disc_comp = { Loading Loading @@ -855,8 +854,6 @@ static void bta_jv_start_discovery_cback(const RawAddress& bd_addr, "result:{}", bd_addr, sdp_result_text(result)); } // User data memory is allocated in `bta_jv_start_discovery` osi_free(const_cast<void*>(user_data)); bta_jv_cb.sdp_cb = {}; } Loading Loading @@ -905,16 +902,10 @@ void bta_jv_start_discovery(const RawAddress& bd_addr, uint16_t num_uuid, .uuid = uuid_list[0], }; // NOTE: This gets freed on the callback or when discovery failed to start uint32_t* rfcomm_slot_id_copy = (uint32_t*)osi_malloc(sizeof(uint32_t)); *rfcomm_slot_id_copy = rfcomm_slot_id; // user_data memory is freed in `bta_jv_start_discovery_cback` callback if (!get_legacy_stack_sdp_api()->service.SDP_ServiceSearchAttributeRequest2( bd_addr, p_bta_jv_cfg->p_sdp_db, bta_jv_start_discovery_cback, (const void*)rfcomm_slot_id_copy)) { bd_addr, p_bta_jv_cfg->p_sdp_db, base::BindRepeating(&bta_jv_start_discovery_cback, rfcomm_slot_id))) { bta_jv_cb.sdp_cb = {}; osi_free(rfcomm_slot_id_copy); log::warn( "Unable to original service discovery bd_addr:{} num:uuid:{} " "rfcomm_slot_id:{}", Loading Loading @@ -2083,9 +2074,10 @@ static void bta_jv_reset_sniff_timer(tBTA_JV_PM_CB* p_cb) { namespace bluetooth::legacy::testing { void bta_jv_start_discovery_cback(const RawAddress& bd_addr, tSDP_RESULT result, const void* user_data) { ::bta_jv_start_discovery_cback(bd_addr, result, user_data); void bta_jv_start_discovery_cback(uint32_t rfcomm_slot_id, const RawAddress& bd_addr, tSDP_RESULT result) { ::bta_jv_start_discovery_cback(rfcomm_slot_id, bd_addr, result); } } // namespace bluetooth::legacy::testing
system/bta/sdp/bta_sdp_act.cc +8 −13 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ * This file contains action functions for SDP search. ******************************************************************************/ #include <base/bind.h> #include <bluetooth/log.h> #include <frameworks/proto_logging/stats/enums/bluetooth/enums.pb.h> #include <hardware/bt_sdp.h> Loading Loading @@ -550,8 +551,8 @@ static void bta_create_raw_sdp_record(bluetooth_sdp_record* record, } /** Callback from btm after search is completed */ static void bta_sdp_search_cback(const RawAddress& /* bd_addr */, tSDP_RESULT result, const void* user_data) { static void bta_sdp_search_cback(Uuid uuid, const RawAddress& /* bd_addr */, tSDP_RESULT result) { tBTA_SDP_STATUS status = BTA_SDP_FAILURE; int count = 0; log::verbose("res: 0x{:x}", result); Loading @@ -560,8 +561,6 @@ static void bta_sdp_search_cback(const RawAddress& /* bd_addr */, if (bta_sdp_cb.p_dm_cback == NULL) return; Uuid& uuid = *(reinterpret_cast<Uuid*>(const_cast<void*>(user_data))); tBTA_SDP_SEARCH_COMP evt_data; memset(&evt_data, 0, sizeof(evt_data)); evt_data.remote_addr = bta_sdp_cb.remote_addr; Loading Loading @@ -636,8 +635,6 @@ static void bta_sdp_search_cback(const RawAddress& /* bd_addr */, bta_sdp_cb.p_dm_cback(BTA_SDP_SEARCH_COMP_EVT, &bta_sdp, (void*)&uuid); bluetooth::shim::CountCounterMetrics( android::bluetooth::CodePathCounterKeyEnum::SDP_SUCCESS, 1); osi_free(const_cast<void*>( user_data)); // We no longer need the user data to track the search } /******************************************************************************* Loading Loading @@ -699,11 +696,9 @@ void bta_sdp_search(const RawAddress bd_addr, const bluetooth::Uuid uuid) { log::warn("Unable to initialize SDP service search db peer:{}", bd_addr); } Uuid* bta_sdp_search_uuid = (Uuid*)osi_malloc(sizeof(Uuid)); *bta_sdp_search_uuid = uuid; if (!get_legacy_stack_sdp_api()->service.SDP_ServiceSearchAttributeRequest2( bd_addr, p_bta_sdp_cfg->p_sdp_db, bta_sdp_search_cback, (void*)bta_sdp_search_uuid)) { bd_addr, p_bta_sdp_cfg->p_sdp_db, base::BindRepeating(bta_sdp_search_cback, uuid))) { log::warn("Unable to start SDP service search attribute request peer:{}", bd_addr); bta_sdp_cb.sdp_active = false; Loading Loading @@ -763,9 +758,9 @@ void bta_create_dip_sdp_record(bluetooth_sdp_record* record, ::bta_create_dip_sdp_record(record, p_rec); } void bta_sdp_search_cback(const RawAddress& bd_addr, tSDP_RESULT result, const void* user_data) { ::bta_sdp_search_cback(bd_addr, result, user_data); void bta_sdp_search_cback(Uuid uuid, const RawAddress& bd_addr, tSDP_RESULT result) { ::bta_sdp_search_cback(uuid, bd_addr, result); } } // namespace testing Loading
system/bta/test/bta_dip_test.cc +4 −7 Original line number Diff line number Diff line Loading @@ -107,8 +107,8 @@ namespace testing { void bta_create_dip_sdp_record(bluetooth_sdp_record* record, tSDP_DISC_REC* p_rec); void bta_sdp_search_cback(const RawAddress& bd_addr, tSDP_RESULT result, const void* user_data); void bta_sdp_search_cback(Uuid uuid, const RawAddress& bd_addr, tSDP_RESULT result); } // namespace testing } // namespace bluetooth Loading Loading @@ -208,9 +208,6 @@ TEST_F(BtaDipTest, test_invalid_size_checks) { TEST_F(BtaDipTest, test_bta_sdp_search_cback) { Uuid* userdata = (Uuid*)malloc(sizeof(Uuid)); memcpy(userdata, &UUID_DIP, sizeof(UUID_DIP)); bluetooth::testing::bta_sdp_search_cback(RawAddress::kEmpty, SDP_SUCCESS, userdata); bluetooth::testing::bta_sdp_search_cback(UUID_DIP, RawAddress::kEmpty, SDP_SUCCESS); }