Bluetooth: Ignore ADV_DIRECT_IND attempts from unknown devices
authorMarcel Holtmann <marcel@holtmann.org>
Wed, 23 Jul 2014 19:55:22 +0000 (21:55 +0200)
committerJohan Hedberg <johan.hedberg@intel.com>
Wed, 23 Jul 2014 21:37:20 +0000 (00:37 +0300)
Unconditionally connecting to devices sending ADV_DIRECT_IND when
the controller is in CONNECTABLE mode is a feature that is not
fully working. The background scanning trigger for this has been
removed, but the statement allowing it to happen in case some
other part triggers is still present. So remove that code part
as well to avoid unwanted connections.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
net/bluetooth/hci_event.c

index 4c41774aa5565cbd7aa0c99ad74adbacea87e8ce..293dd98ae98f2411e47204f5c3f58fe2fc469806 100644 (file)
@@ -4266,18 +4266,12 @@ static void check_pending_le_conn(struct hci_dev *hdev, bdaddr_t *addr,
        if (hdev->conn_hash.le_num_slave > 0)
                return;
 
-       /* If we're connectable, always connect any ADV_DIRECT_IND event */
-       if (test_bit(HCI_CONNECTABLE, &hdev->dev_flags) &&
-           adv_type == LE_ADV_DIRECT_IND)
-               goto connect;
-
        /* If we're not connectable only connect devices that we have in
         * our pend_le_conns list.
         */
        if (!hci_pend_le_action_lookup(&hdev->pend_le_conns, addr, addr_type))
                return;
 
-connect:
        conn = hci_connect_le(hdev, addr, addr_type, BT_SECURITY_LOW,
                              HCI_LE_AUTOCONN_TIMEOUT, HCI_ROLE_MASTER);
        if (!IS_ERR(conn))