mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-06-06 05:14:45 +00:00
NimBLE NVS: Fix bug in deletion of peer_dev_record
- Fix comparison metric while deleting peer_dev_record. Previous to this, random address change after reboot used to result in NVS database mismatch and hence sometimes caused wrong NVS entry deletion. - Closes ESPCS-540
This commit is contained in:
@@ -96,7 +96,7 @@ ble_rpa_remove_peer_dev_rec(struct ble_hs_dev_records *p_dev_rec)
|
||||
ble_store_num_peer_dev_rec--;
|
||||
if ((i != ble_store_num_peer_dev_rec) && (ble_store_num_peer_dev_rec != 0)) {
|
||||
memmove(&peer_dev_rec[i], &peer_dev_rec[i + 1],
|
||||
(ble_store_num_peer_dev_rec - i + 1) * sizeof(struct ble_hs_dev_records ));
|
||||
(ble_store_num_peer_dev_rec - i) * sizeof(struct ble_hs_dev_records ));
|
||||
}
|
||||
|
||||
BLE_HS_LOG(DEBUG, " RPA: removed device at index = %d, no. of peer records"
|
||||
|
||||
@@ -212,8 +212,10 @@ get_nvs_db_attribute(int obj_type, bool empty, void *value, int num_value)
|
||||
if (value) {
|
||||
#if MYNEWT_VAL(BLE_HOST_BASED_PRIVACY)
|
||||
if (obj_type == BLE_STORE_OBJ_TYPE_PEER_DEV_REC) {
|
||||
err = get_nvs_matching_index(&p_dev_rec, value, num_value,
|
||||
sizeof(struct ble_hs_dev_records));
|
||||
err = get_nvs_matching_index(&p_dev_rec.peer_sec,
|
||||
&((struct ble_hs_dev_records *)value)->peer_sec,
|
||||
num_value,
|
||||
sizeof(struct ble_hs_peer_sec));
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user