From 9e522afeae53adccc85718927f2966464c1176af Mon Sep 17 00:00:00 2001 From: Szymon Czapracki Date: Tue, 16 Jan 2024 11:02:36 +0100 Subject: [PATCH] nimble/gap: Fix for resolving list peer removal This commit aims to fix an issue where deleting peer from resolving list would fail due to lack of IRK on the list. --- nimble/host/src/ble_gap.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nimble/host/src/ble_gap.c b/nimble/host/src/ble_gap.c index 85d7a9e4cc..8c63610c68 100644 --- a/nimble/host/src/ble_gap.c +++ b/nimble/host/src/ble_gap.c @@ -6202,7 +6202,12 @@ ble_gap_unpair(const ble_addr_t *peer_addr) rc = ble_hs_pvcy_remove_entry(peer_addr->type, peer_addr->val); - if (rc != 0) { + + /* We allow BLE_ERR_UNK_CONN_ID as the IRK of the peer might not be + * present on the resolving list, but we still should be able to + * remove that entry. + */ + if (rc != 0 && rc != (BLE_HS_ERR_HCI_BASE + BLE_ERR_UNK_CONN_ID)) { return rc; }