mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-03 03:31:41 +03:00
fix(ble/bluedroid): fix CTE and ISO API validation
(cherry picked from commit 0c3c894b7d)
Co-authored-by: zhiweijian <zhiweijian@espressif.com>
This commit is contained in:
@@ -28,7 +28,7 @@ static void btc_ble_cte_callback(tBTM_BLE_CTE_EVENT event,
|
||||
{
|
||||
esp_ble_cte_cb_param_t param = {0};
|
||||
bt_status_t ret;
|
||||
btc_msg_t msg;
|
||||
btc_msg_t msg = {0};
|
||||
msg.sig = BTC_SIG_API_CB;
|
||||
msg.pid = BTC_PID_BLE_CTE;
|
||||
|
||||
@@ -42,7 +42,7 @@ static void btc_ble_cte_callback(tBTM_BLE_CTE_EVENT event,
|
||||
break;
|
||||
case BTA_BLE_CTE_SET_TRANS_ENABLE_EVT:
|
||||
msg.act = ESP_BLE_CTE_SET_CONNLESS_TRANS_ENABLE_CMPL_EVT;
|
||||
param.set_trans_enable_cmpl.status = btc_btm_status_to_esp_status(params->cte_trans_params_cmpl.status);
|
||||
param.set_trans_enable_cmpl.status = btc_btm_status_to_esp_status(params->cte_trans_en_cmpl.status);
|
||||
break;
|
||||
case BTA_BLE_CTE_SET_IQ_SAMP_ENABLE_EVT:
|
||||
msg.act = ESP_BLE_CTE_SET_CONNLESS_IQ_SAMPLING_ENABLE_CMPL_EVT;
|
||||
@@ -100,6 +100,7 @@ static void btc_ble_cte_callback(tBTM_BLE_CTE_EVENT event,
|
||||
case BTA_BLE_CTE_CONN_IQ_REPORT_EVT:
|
||||
msg.act = ESP_BLE_CTE_CONN_IQ_REPORT_EVT;
|
||||
param.conn_iq_rpt.conn_handle = params->cte_conn_iq_rpt.conn_handle;
|
||||
param.conn_iq_rpt.rx_phy = params->cte_conn_iq_rpt.rx_phy;
|
||||
param.conn_iq_rpt.data_channel_idx = params->cte_conn_iq_rpt.data_channel_idx;
|
||||
param.conn_iq_rpt.rssi = params->cte_conn_iq_rpt.rssi;
|
||||
param.conn_iq_rpt.rssi_ant_id = params->cte_conn_iq_rpt.rssi_ant_id;
|
||||
@@ -163,6 +164,7 @@ void btc_ble_cte_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src)
|
||||
dst->cte_trans_params.antenna_ids = NULL;
|
||||
}
|
||||
} else {
|
||||
dst->cte_trans_params.switching_pattern_len = 0;
|
||||
dst->cte_trans_params.antenna_ids = NULL;
|
||||
}
|
||||
break;
|
||||
@@ -177,6 +179,7 @@ void btc_ble_cte_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src)
|
||||
BTC_TRACE_ERROR("%s %d no mem\n",__func__, msg->act);
|
||||
}
|
||||
} else {
|
||||
dst->cte_iq_sampling_en.switching_pattern_len = 0;
|
||||
dst->cte_iq_sampling_en.antenna_ids = NULL;
|
||||
}
|
||||
break;
|
||||
@@ -194,6 +197,7 @@ void btc_ble_cte_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src)
|
||||
BTC_TRACE_ERROR("%s %d no mem\n",__func__, msg->act);
|
||||
}
|
||||
} else {
|
||||
dst->cte_recv_params.switching_pattern_len = 0;
|
||||
dst->cte_recv_params.antenna_ids = NULL;
|
||||
}
|
||||
break;
|
||||
@@ -208,6 +212,7 @@ void btc_ble_cte_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src)
|
||||
BTC_TRACE_ERROR("%s %d no mem\n",__func__, msg->act);
|
||||
}
|
||||
} else {
|
||||
dst->cte_conn_trans_params.switching_pattern_len = 0;
|
||||
dst->cte_conn_trans_params.antenna_ids = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2025-2026 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -29,9 +29,10 @@ static void btc_ble_iso_callback(tBTM_BLE_ISO_EVENT event,
|
||||
{
|
||||
esp_ble_iso_cb_param_t param = {0};
|
||||
bt_status_t ret;
|
||||
btc_msg_t msg;
|
||||
btc_msg_t msg = {0};
|
||||
msg.sig = BTC_SIG_API_CB;
|
||||
msg.pid = BTC_PID_ISO_BLE;
|
||||
msg.act = ESP_BLE_ISO_EVT_MAX;
|
||||
|
||||
switch(event) {
|
||||
#if (BLE_FEAT_ISO_BIG_BROADCASTER_EN == TRUE)
|
||||
@@ -208,6 +209,11 @@ static void btc_ble_iso_callback(tBTM_BLE_ISO_EVENT event,
|
||||
break;
|
||||
}
|
||||
|
||||
if (msg.act == ESP_BLE_ISO_EVT_MAX) {
|
||||
BTC_TRACE_ERROR("%s unk ISO evt %d", __func__, event);
|
||||
return;
|
||||
}
|
||||
|
||||
ret = btc_transfer_context(&msg, ¶m,
|
||||
sizeof(esp_ble_iso_cb_param_t), NULL, NULL);
|
||||
|
||||
@@ -341,13 +347,14 @@ void btc_iso_ble_call_handler(btc_msg_t *msg)
|
||||
(uint8_t *)&set_cig_params->cis_params[0]);
|
||||
break;
|
||||
}
|
||||
case BTC_ISO_ACT_SET_CIG_PARAMS_TEST:
|
||||
case BTC_ISO_ACT_SET_CIG_PARAMS_TEST: {
|
||||
struct set_cig_params_test_arg *set_cig_params_test = (struct set_cig_params_test_arg *)arg;
|
||||
BTA_DmBleIsoSetCigParamsTest(set_cig_params_test->cig_id, set_cig_params_test->sdu_int_c_to_p, set_cig_params_test->sdu_int_p_to_c,
|
||||
set_cig_params_test->ft_c_to_p, set_cig_params_test->ft_p_to_c, set_cig_params_test->iso_interval,
|
||||
set_cig_params_test->worse_case_SCA, set_cig_params_test->packing, set_cig_params_test->framing,
|
||||
set_cig_params_test->cis_cnt, (uint8_t *)&set_cig_params_test->cis_params_test[0]);
|
||||
break;
|
||||
}
|
||||
case BTC_ISO_ACT_CREATE_CIS: {
|
||||
struct creat_cis_arg * create_cis = (struct creat_cis_arg *)arg;
|
||||
BTA_DmBleIsoCreateCis(create_cis->cis_count, (uint8_t *)&create_cis->cis_hdls[0]);
|
||||
|
||||
Reference in New Issue
Block a user