Merge branch 'fix/ble_mesh_github_pr_14140_v5.0' into 'release/v5.0'

fix(ble-mesh): don't use dangling pointer in nimble gatt service (v5.0)

See merge request espressif/esp-idf!32616
This commit is contained in:
Jiang Jiang Jian
2024-08-26 14:44:29 +08:00

View File

@ -1,7 +1,7 @@
/*
* SPDX-FileCopyrightText: 2017 Nordic Semiconductor ASA
* SPDX-FileCopyrightText: 2015-2016 Intel Corporation
* SPDX-FileContributor: 2018-2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2018-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -1312,18 +1312,18 @@ int bt_mesh_gatts_service_stop(struct bt_mesh_gatt_service *svc)
{
int rc;
uint16_t handle;
if (!svc) {
BT_ERR("%s, Invalid parameter", __func__);
return -EINVAL;
}
const ble_uuid_t *uuid;
if (BLE_MESH_UUID_16(svc->attrs[0].user_data)->val == BT_UUID_MESH_PROXY_VAL) {
uuid = BLE_UUID16_DECLARE(BT_UUID_MESH_PROXY_VAL);
rc = ble_gatts_find_svc(BLE_UUID16_DECLARE(BT_UUID_MESH_PROXY_VAL), &handle);
} else {
uuid = BLE_UUID16_DECLARE(BT_UUID_MESH_PROV_VAL);
rc = ble_gatts_find_svc(BLE_UUID16_DECLARE(BT_UUID_MESH_PROV_VAL), &handle);
}
rc = ble_gatts_find_svc(uuid, &handle);
assert(rc == 0);
ble_gatts_svc_set_visibility(handle, 0);
@ -1337,14 +1337,13 @@ int bt_mesh_gatts_service_start(struct bt_mesh_gatt_service *svc)
{
int rc;
uint16_t handle;
const ble_uuid_t *uuid;
if (BLE_MESH_UUID_16(svc->attrs[0].user_data)->val == BT_UUID_MESH_PROXY_VAL) {
uuid = BLE_UUID16_DECLARE(BT_UUID_MESH_PROXY_VAL);
rc = ble_gatts_find_svc(BLE_UUID16_DECLARE(BT_UUID_MESH_PROXY_VAL), &handle);
} else {
uuid = BLE_UUID16_DECLARE(BT_UUID_MESH_PROV_VAL);
rc = ble_gatts_find_svc(BLE_UUID16_DECLARE(BT_UUID_MESH_PROV_VAL), &handle);
}
rc = ble_gatts_find_svc(uuid, &handle);
assert(rc == 0);
ble_gatts_svc_set_visibility(handle, 1);