diff --git a/components/bt/host/bluedroid/bta/gatt/bta_gattc_act.c b/components/bt/host/bluedroid/bta/gatt/bta_gattc_act.c index fda7c8e92a31..ce5dcbf439a7 100644 --- a/components/bt/host/bluedroid/bta/gatt/bta_gattc_act.c +++ b/components/bt/host/bluedroid/bta/gatt/bta_gattc_act.c @@ -1186,27 +1186,24 @@ void bta_gattc_write(tBTA_GATTC_CLCB *p_clcb, tBTA_GATTC_DATA *p_data) } tBTA_GATT_STATUS status = BTA_GATT_OK; - tGATT_VALUE attr; - attr.conn_id = p_clcb->bta_conn_id; - attr.handle = p_data->api_write.handle; - attr.offset = p_data->api_write.offset; - attr.len = p_data->api_write.len; - attr.auth_req = p_data->api_write.auth_req; + tGATT_CL_COMPLETE cl_data = {0}; + + cl_data.att_value.conn_id = p_clcb->bta_conn_id; + cl_data.att_value.handle = p_data->api_write.handle; + cl_data.att_value.offset = p_data->api_write.offset; + cl_data.att_value.len = p_data->api_write.len; + cl_data.att_value.auth_req = p_data->api_write.auth_req; if (p_data->api_write.p_value) { - memcpy(attr.value, p_data->api_write.p_value, p_data->api_write.len); + memcpy(cl_data.att_value.value, p_data->api_write.p_value, p_data->api_write.len); } - status = GATTC_Write(p_clcb->bta_conn_id, p_data->api_write.write_type, &attr); + status = GATTC_Write(p_clcb->bta_conn_id, p_data->api_write.write_type, &cl_data.att_value); /* write fail */ if (status != BTA_GATT_OK) { - - tGATT_CL_COMPLETE cl_data = {0}; cl_data.handle = p_data->api_write.handle; - memcpy(&cl_data.att_value, &attr, sizeof(tGATT_VALUE)); - bta_gattc_cmpl_sendmsg(p_clcb->bta_conn_id, GATTC_OPTYPE_WRITE, status, &cl_data); } }