On Wed, May 01, 2024 at 11:50:02AM -0600, Gustavo A. R. Silva wrote: > 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 <gustavoars@xxxxxxxxxx> > --- > 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; Yeah, good idea. No need to repeat a hard-coded value. Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx> -- Kees Cook