mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
fix(bt): fix BTC task and BLE mesh bluedroid adapter
(cherry picked from commit 678fb93245)
Co-authored-by: zhiweijian <zhiweijian@espressif.com>
This commit is contained in:
@@ -353,7 +353,10 @@ bt_status_t btc_transfer_context(btc_msg_t *msg, void *arg, int arg_len, btc_arg
|
|||||||
|
|
||||||
memcpy(lmsg, msg, sizeof(btc_msg_t));
|
memcpy(lmsg, msg, sizeof(btc_msg_t));
|
||||||
if (arg) {
|
if (arg) {
|
||||||
memset(lmsg->arg, 0x00, arg_len); //important, avoid arg which have no length
|
/* memcpy below covers exactly arg_len bytes, which is the full size of
|
||||||
|
* the destination buffer (it was sized as sizeof(btc_msg_t) + arg_len),
|
||||||
|
* so a prior memset would be redundant. Deep-copy callbacks must only
|
||||||
|
* read fields that were written by the caller-supplied arg. */
|
||||||
memcpy(lmsg->arg, arg, arg_len);
|
memcpy(lmsg->arg, arg, arg_len);
|
||||||
if (copy_func) {
|
if (copy_func) {
|
||||||
copy_func(lmsg, lmsg->arg, arg);
|
copy_func(lmsg, lmsg->arg, arg);
|
||||||
|
|||||||
@@ -2315,7 +2315,11 @@ static void bt_mesh_bta_gattc_cb(tBTA_GATTC_EVT event, tBTA_GATTC *p_data)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case BTA_GATTC_CLOSE_EVT:
|
case BTA_GATTC_CLOSE_EVT:
|
||||||
bta_gattc_clcb_dealloc_by_conn_id(p_data->close.conn_id);
|
/* CLCB lifetime is owned by BTA: bta_gattc_close() deallocates the
|
||||||
|
* CLCB right after invoking this synchronous callback. Calling
|
||||||
|
* bta_gattc_clcb_dealloc_by_conn_id() here would be a redundant
|
||||||
|
* double-dealloc (currently a no-op only because of NULL checks in
|
||||||
|
* bta_gattc_clcb_dealloc()). Keep this branch as a pure notification. */
|
||||||
BT_DBG("BTA_GATTC_CLOSE_EVT");
|
BT_DBG("BTA_GATTC_CLOSE_EVT");
|
||||||
break;
|
break;
|
||||||
case BTA_GATTC_CONNECT_EVT: {
|
case BTA_GATTC_CONNECT_EVT: {
|
||||||
|
|||||||
Reference in New Issue
Block a user