diff options
authorJakub Pawlowski <>2016-09-16 08:03:16 -0700
committerAndre Eisenbach <>2016-09-16 19:57:49 +0000
commit1e688824d969cab2c01130bdfd3283a2719c28e8 (patch)
parent654c6d13e57c172c5d48598c8321ed6bf3ea5d6b (diff)
Fix bad address type assumption
LE related code should not use BTM_ACL_IS_CONNECTED, because it assumes classic transport. In this particular case, connection created event, which was result of advertising, caused cancellation of "LE Create Connection". Attempt to send "LE Create Connection Cancel" was checking if connection is already established, but was failing to do so becuase BTM_ACL_IS_CONNECTED was used instead of btm_bda_to_acl with proper transport. This caused just created connection to be dropped. Bug: 31442085 Change-Id: Ia345a3d00e8567160f4abb2a31c4130ee69d67a3 (cherry picked from commit f5566938ba671329d91c84c30ab126fbcdfc16d7)
1 files changed, 1 insertions, 1 deletions
diff --git a/stack/l2cap/l2c_ble.c b/stack/l2cap/l2c_ble.c
index 0f7eda6..aa7cef4 100644
--- a/stack/l2cap/l2c_ble.c
+++ b/stack/l2cap/l2c_ble.c
@@ -76,7 +76,7 @@ BOOLEAN L2CA_CancelBleConnectReq (BD_ADDR rem_bda)
p_lcb = l2cu_find_lcb_by_bd_addr(rem_bda, BT_TRANSPORT_LE);
/* Do not remove lcb if an LE link is already up as a peripheral */
if (p_lcb != NULL &&
- !(p_lcb->link_role == HCI_ROLE_SLAVE && BTM_ACL_IS_CONNECTED(rem_bda)))
+ !(p_lcb->link_role == HCI_ROLE_SLAVE && btm_bda_to_acl(rem_bda, BT_TRANSPORT_LE) != NULL))
p_lcb->disc_reason = L2CAP_CONN_CANCEL;
l2cu_release_lcb (p_lcb);