diff --git a/components/bt/esp_ble_mesh/core/bluedroid_host/adapter.c b/components/bt/esp_ble_mesh/core/bluedroid_host/adapter.c index d6f51bfc9d..fd42502fda 100644 --- a/components/bt/esp_ble_mesh/core/bluedroid_host/adapter.c +++ b/components/bt/esp_ble_mesh/core/bluedroid_host/adapter.c @@ -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; diff --git a/components/bt/esp_ble_mesh/core/nimble_host/adapter.c b/components/bt/esp_ble_mesh/core/nimble_host/adapter.c index 60478e93e7..f5fd0279fc 100644 --- a/components/bt/esp_ble_mesh/core/nimble_host/adapter.c +++ b/components/bt/esp_ble_mesh/core/nimble_host/adapter.c @@ -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; diff --git a/components/bt/esp_ble_mesh/core/scan.c b/components/bt/esp_ble_mesh/core/scan.c index d161061ca7..df6f22e117 100644 --- a/components/bt/esp_ble_mesh/core/scan.c +++ b/components/bt/esp_ble_mesh/core/scan.c @@ -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); }