Skip to content

Commit 2bd198d

Browse files
committed
component/bt: Fix malloc fail lead to crash
1 parent 6ceedab commit 2bd198d

File tree

1 file changed

+8
-0
lines changed
  • components/bt/bluedroid/btc/profile/std/gatt

1 file changed

+8
-0
lines changed

components/bt/bluedroid/btc/profile/std/gatt/btc_gatts.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,8 @@ static void btc_gatts_cb_param_copy_req(btc_msg_t *msg, void *p_dest, void *p_sr
506506
if (p_dest_data->req_data.p_data != NULL) {
507507
memcpy(p_dest_data->req_data.p_data, p_src_data->req_data.p_data,
508508
sizeof(tBTA_GATTS_REQ_DATA));
509+
} else {
510+
LOG_ERROR("%s %d no mem\n", __func__, msg->act);
509511
}
510512
break;
511513

@@ -759,6 +761,9 @@ void btc_gatts_cb_handler(btc_msg_t *msg)
759761
param.write.conn_id = BTC_GATT_GET_CONN_ID(p_data->req_data.conn_id);
760762
param.write.trans_id = p_data->req_data.trans_id;
761763
memcpy(param.write.bda, p_data->req_data.remote_bda, ESP_BD_ADDR_LEN);
764+
if (p_data->req_data.p_data == NULL) {
765+
break;
766+
}
762767
param.write.handle = p_data->req_data.p_data->write_req.handle;
763768
param.write.offset = p_data->req_data.p_data->write_req.offset;
764769
param.write.need_rsp = p_data->req_data.p_data->write_req.need_rsp;
@@ -775,6 +780,9 @@ void btc_gatts_cb_handler(btc_msg_t *msg)
775780
param.exec_write.conn_id = BTC_GATT_GET_CONN_ID(p_data->req_data.conn_id);
776781
param.exec_write.trans_id = p_data->req_data.trans_id;
777782
memcpy(param.exec_write.bda, p_data->req_data.remote_bda, ESP_BD_ADDR_LEN);
783+
if (p_data->req_data.p_data == NULL) {
784+
break;
785+
}
778786
param.exec_write.exec_write_flag = p_data->req_data.p_data->exec_write;
779787

780788
btc_gatts_cb_to_app(ESP_GATTS_EXEC_WRITE_EVT, gatts_if, &param);

0 commit comments

Comments
 (0)