Merge branch 'fix/ble_mesh_adv_rpt_fix_v5.5' into 'release/v5.5'
fix(ble_mesh): check data length before assigning adv data pointer (v5.5) See merge request espressif/esp-idf!42990
This commit is contained in:
@@ -223,7 +223,7 @@ void bt_mesh_ble_ext_adv_report(tBTM_BLE_EXT_ADV_REPORT *ext_adv_report)
|
||||
memcpy(adv_rpt.dir_addr, ext_adv_report->dir_addr, BLE_MESH_ADDR_LEN);
|
||||
|
||||
adv_rpt.addr_type = ext_adv_report->addr_type;
|
||||
adv_rpt.data = ext_adv_report->adv_data;
|
||||
adv_rpt.data = ext_adv_report->adv_data_len ? ext_adv_report->adv_data : NULL;
|
||||
adv_rpt.length = ext_adv_report->adv_data_len;
|
||||
adv_rpt.rssi = ext_adv_report->rssi;
|
||||
adv_rpt.event_type = ext_adv_report->event_type;
|
||||
|
||||
@@ -474,7 +474,7 @@ void bt_mesh_ble_ext_adv_report(struct ble_gap_ext_disc_desc *desc)
|
||||
|
||||
/* Here, only a shallow copy needs to be implemented;
|
||||
* deep copying behavior occurs in btc_ble_mesh_ble_copy_req_data. */
|
||||
adv_rpt.data = desc->data;
|
||||
adv_rpt.data = desc->length_data ? desc->data : NULL;
|
||||
|
||||
adv_rpt.event_type = desc->props;
|
||||
adv_rpt.addr_type = desc->addr.type;
|
||||
|
||||
@@ -380,7 +380,7 @@ static void inline callback_ble_adv_pkt(const bt_mesh_addr_t *addr,
|
||||
adv_rpt.addr_type = addr->type;
|
||||
adv_rpt.adv_type = adv_type;
|
||||
adv_rpt.length = length;
|
||||
adv_rpt.data = data;
|
||||
adv_rpt.data = length ? data : NULL;
|
||||
adv_rpt.rssi = rssi;
|
||||
bt_mesh_ble_scan_cb_evt_to_btc(&adv_rpt);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user