summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Pawlowski <jpawlowski@google.com>2016-09-16 15:03:16 (GMT)
committerAndre Eisenbach <eisenbach@google.com>2016-09-16 19:57:49 (GMT)
commit1e688824d969cab2c01130bdfd3283a2719c28e8 (patch)
tree43aa12aa70c45429905d58f98af14119583dd3cf
parent654c6d13e57c172c5d48598c8321ed6bf3ea5d6b (diff)
downloadandroid-system-bt-1e688824d969cab2c01130bdfd3283a2719c28e8.tar.gz
android-system-bt-1e688824d969cab2c01130bdfd3283a2719c28e8.tar.xz
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)
-rw-r--r--stack/l2cap/l2c_ble.c2
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);