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:
Jiang Jiang Jian
2025-11-11 19:29:06 +08:00
3 changed files with 3 additions and 3 deletions
@@ -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;
+1 -1
View File
@@ -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);
}