|
1 | 1 | /*
|
2 |
| - * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD |
| 2 | + * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD |
3 | 3 | *
|
4 | 4 | * SPDX-License-Identifier: Apache-2.0
|
5 | 5 | */
|
@@ -160,20 +160,31 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
|
160 | 160 | if (p_data->req_data.p_data->write_req.is_prep) {
|
161 | 161 | tBTA_GATT_STATUS status = GATT_SUCCESS;
|
162 | 162 |
|
163 |
| - if (blufi_env.prepare_buf == NULL) { |
164 |
| - blufi_env.prepare_buf = osi_malloc(BLUFI_PREPAIR_BUF_MAX_SIZE); |
165 |
| - blufi_env.prepare_len = 0; |
166 |
| - if (blufi_env.prepare_buf == NULL) { |
167 |
| - BLUFI_TRACE_ERROR("Blufi prep no mem\n"); |
168 |
| - status = GATT_NO_RESOURCES; |
| 163 | + do { |
| 164 | + if (p_data->req_data.p_data->write_req.offset > BLUFI_PREPARE_BUF_MAX_SIZE) { |
| 165 | + status = ESP_GATT_INVALID_OFFSET; |
| 166 | + break; |
169 | 167 | }
|
170 |
| - } else { |
171 |
| - if (p_data->req_data.p_data->write_req.offset > BLUFI_PREPAIR_BUF_MAX_SIZE) { |
172 |
| - status = GATT_INVALID_OFFSET; |
173 |
| - } else if ((p_data->req_data.p_data->write_req.offset + p_data->req_data.p_data->write_req.len) > BLUFI_PREPAIR_BUF_MAX_SIZE) { |
174 |
| - status = GATT_INVALID_ATTR_LEN; |
| 168 | + |
| 169 | + if ((p_data->req_data.p_data->write_req.offset + p_data->req_data.p_data->write_req.len) > BLUFI_PREPARE_BUF_MAX_SIZE) { |
| 170 | + status = ESP_GATT_INVALID_ATTR_LEN; |
| 171 | + break; |
175 | 172 | }
|
176 |
| - } |
| 173 | + |
| 174 | + if (blufi_env.prepare_buf == NULL) { |
| 175 | + if (p_data->req_data.p_data->write_req.offset != 0) { |
| 176 | + status = GATT_INVALID_OFFSET; |
| 177 | + break; |
| 178 | + } |
| 179 | + blufi_env.prepare_buf = osi_malloc(BLUFI_PREPARE_BUF_MAX_SIZE); |
| 180 | + blufi_env.prepare_len = 0; |
| 181 | + if (blufi_env.prepare_buf == NULL) { |
| 182 | + BLUFI_TRACE_ERROR("Blufi prep no mem\n"); |
| 183 | + status = GATT_NO_RESOURCES; |
| 184 | + break; |
| 185 | + } |
| 186 | + } |
| 187 | + } while (0); |
177 | 188 |
|
178 | 189 | memset(&rsp, 0, sizeof(tGATTS_RSP));
|
179 | 190 | rsp.attr_value.handle = p_data->req_data.p_data->write_req.handle;
|
|
0 commit comments