Added fix to handle all 0s address of external controllers during IRK generation

This commit is contained in:
Rahul Tank
2023-12-14 12:56:19 +05:30
parent 16b324ab3a
commit 08ac3ca677
+8 -2
View File
@@ -214,7 +214,11 @@ void ble_hs_pvcy_set_default_irk(void)
ble_hs_id_addr(BLE_ADDR_PUBLIC, (const uint8_t **) &local_id, NULL);
/* Create key / value */
memcpy (key_local_irk.addr.val , local_id, BLE_DEV_ADDR_LEN);
/* Some controllers give all 0s as address. Handle such case */
if (local_id) {
memcpy (key_local_irk.addr.val , local_id, BLE_DEV_ADDR_LEN);
}
key_local_irk.addr.type = BLE_ADDR_PUBLIC;
/* Read NVS for local IRK */
@@ -236,7 +240,9 @@ void ble_hs_pvcy_set_default_irk(void)
memcpy(&value_local_irk.irk, ble_hs_pvcy_default_irk, 16);
memcpy(value_local_irk.addr.val, local_id, BLE_DEV_ADDR_LEN);
if (local_id) {
memcpy(value_local_irk.addr.val, local_id, BLE_DEV_ADDR_LEN);
}
value_local_irk.addr.type = BLE_ADDR_PUBLIC;