At the moment of the check, `cmd->num_cis` holds the value of 0x1f,
which is the max number of elements in the `cmd->cis[]` array at
declaration, which is 0x1f.

So, avoid using 0x1f directly, and instead use `cmd->num_cis`. Similarly
to this other patch[1].

Link: https://lore.kernel.org/linux-hardening/ZivaHUQyDDK9fXEk@neat/ [1]
Signed-off-by: Gustavo A. R. Silva <gustavo...@kernel.org>
---
 net/bluetooth/hci_sync.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/bluetooth/hci_sync.c b/net/bluetooth/hci_sync.c
index 6e15594d3565..af9513f3c451 100644
--- a/net/bluetooth/hci_sync.c
+++ b/net/bluetooth/hci_sync.c
@@ -6559,7 +6559,7 @@ int hci_le_create_cis_sync(struct hci_dev *hdev)
                cis->cis_handle = cpu_to_le16(conn->handle);
                aux_num_cis++;
 
-               if (aux_num_cis >= 0x1f)
+               if (aux_num_cis >= cmd->num_cis)
                        break;
        }
        cmd->num_cis = aux_num_cis;
-- 
2.34.1


Reply via email to