Bluetooth: ISO: Allow binding a bcast listener to 0 bises
authorIulia Tanasescu <iulia.tanasescu@nxp.com>
Tue, 3 Oct 2023 14:49:33 +0000 (17:49 +0300)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Mon, 23 Oct 2023 18:01:33 +0000 (11:01 -0700)
This makes it possible to bind a broadcast listener to a broadcaster
address without asking for any BIS indexes to sync with.

Signed-off-by: Iulia Tanasescu <iulia.tanasescu@nxp.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
net/bluetooth/hci_conn.c
net/bluetooth/iso.c

index 271da46e7428d863a182d0561fdec9f8508c5a2f..e9c56fcd99c43b026b1df2f2cfb5793bb275d8df 100644 (file)
@@ -2147,7 +2147,7 @@ int hci_le_big_create_sync(struct hci_dev *hdev, struct hci_conn *hcon,
        } pdu;
        int err;
 
-       if (num_bis > sizeof(pdu.bis))
+       if (num_bis < 0x01 || num_bis > sizeof(pdu.bis))
                return -EINVAL;
 
        err = qos_set_big(hdev, qos);
index 2132a16be93cd0a32292d2def0095d89170c33b1..8ab7ea5ebedf6a9dbe75603df77f5c1399e4f4ef 100644 (file)
@@ -790,8 +790,7 @@ static int iso_sock_bind_bc(struct socket *sock, struct sockaddr *addr,
        BT_DBG("sk %p bc_sid %u bc_num_bis %u", sk, sa->iso_bc->bc_sid,
               sa->iso_bc->bc_num_bis);
 
-       if (addr_len > sizeof(*sa) + sizeof(*sa->iso_bc) ||
-           sa->iso_bc->bc_num_bis < 0x01 || sa->iso_bc->bc_num_bis > 0x1f)
+       if (addr_len > sizeof(*sa) + sizeof(*sa->iso_bc))
                return -EINVAL;
 
        bacpy(&iso_pi(sk)->dst, &sa->iso_bc->bc_bdaddr);