Bluetooth: Don't try to reject failed LE connections
authorJohan Hedberg <johan.hedberg@intel.com>
Tue, 15 Jul 2014 08:51:28 +0000 (11:51 +0300)
committerMarcel Holtmann <marcel@holtmann.org>
Tue, 15 Jul 2014 08:59:30 +0000 (10:59 +0200)
The check for the blacklist in hci_le_conn_complete_evt() should be when
we know that we have an actual successful connection (ev->status being
non-zero). This patch fixes this ordering.

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

index bf2926b..68d335e 100644 (file)
@@ -4187,14 +4187,14 @@ static void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *skb)
        else
                addr_type = BDADDR_LE_RANDOM;
 
-       /* Drop the connection if he device is blocked */
-       if (hci_bdaddr_list_lookup(&hdev->blacklist, &conn->dst, addr_type)) {
-               hci_conn_drop(conn);
+       if (ev->status) {
+               hci_le_conn_failed(conn, ev->status);
                goto unlock;
        }
 
-       if (ev->status) {
-               hci_le_conn_failed(conn, ev->status);
+       /* Drop the connection if the device is blocked */
+       if (hci_bdaddr_list_lookup(&hdev->blacklist, &conn->dst, addr_type)) {
+               hci_conn_drop(conn);
                goto unlock;
        }