fix(bt): check bd address only for bredr in bluedroid host l2cu_allocate_lcb()

This commit is contained in:
Shen Weilong
2025-08-18 10:44:22 +08:00
parent 659ae57c83
commit 61c13ef849

View File

@@ -67,7 +67,8 @@ tL2C_LCB *l2cu_allocate_lcb (BD_ADDR p_bd_addr, BOOLEAN is_bonding, tBT_TRANSPOR
/* Check if peer device's and our BD_ADDR is same or not. It
should be different to avoid 'Impersonation in the Pin Pairing
Protocol' (CVE-2020-26555) vulnerability. */
if (memcmp((uint8_t *)p_bd_addr, (uint8_t *)&controller_get_interface()->get_address()->address, sizeof (BD_ADDR)) == 0) {
if ((transport == BT_TRANSPORT_BR_EDR) &&
(memcmp((uint8_t *)p_bd_addr, (uint8_t *)&controller_get_interface()->get_address()->address, sizeof (BD_ADDR)) == 0)) {
L2CAP_TRACE_ERROR ("%s connection rejected due to same BD ADDR", __func__);
return (NULL);
}